2016-11-22 4 views
0

가 :버전 메이븐 플러그인 : 패키지 버전 이후에 찾을 수 없습니다 사용 - 최신 - 버전을 내가 명령을 내 Maven 프로젝트에 <strong>버전 메이븐 플러그인</strong> 플러그인을 실행하면

mvn versions:use-latest-versions

는 pom.xml 파일입니다 업데이트 된 종속성으로 업데이트되었습니다.

문제 컴파일러가 패키지를 찾을 수 없습니다라고 그래서이 할 이전 버전에서 사용되는 패키지의 일부를 포함 일부 라이브러리는 새로 버전으로 업데이트된다는 것입니다. 아무도 자동으로 피하는 법을 알고 있습니까? 내 코드에서 사용하고있는 패키지와 클래스가있는 최신 버전으로 업데이트합니다.

+0

귀하의 사용법을 이해할 수 있을지 잘 모르겠습니다. 종속성으로 나열된 패키지 X가 있다고 가정 해보십시오. X는 Y에 의존하고 Y를 사용하지만 명시 적으로 종속성으로 나열하지 않습니다. 이제 버전 플러그인 업데이트가 있고 Y는 더 이상 X의 종속성이 아니지만 여전히 코드에서 사용합니다. – Matthias

+0

나는 가정을하고 있지만, 플러그인의 목적은 의존성을 업그레이드 한 후에 코드가 여전히 컴파일되고 있는지 확인하는 것이라고 생각하지 않습니다.사실, 이것은 당신이 방금 언급 한 것처럼 소스 코드에서 deprecated 메소드 등을 참조 할 수 있기 때문에 매우 위험합니다. 그 이상의 것이있을 수 있습니다 : ** 라이센스 **에 대해 생각 했습니까? 어쨌든 여기를 살펴보면 컨텍스트에 대한 좋은 대답이 있습니다. [여기] (http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the- 최신 버전 - 종속성) – MadJlzz

답변

2

내 의견으로는, 어떤 버전 업데이트가 "저장"인지 쉽게 판단 할 수있는 방법은 없습니다.

컴파일하는 모든 클래스가 여전히 존재하는지 확인하더라도 메소드 서명이 변경되었을 수 있습니다. 그리고 모든 메소드 시그니처가 동일하게 유지 되더라도 동작이 변경되어 런타임 예외 등이 발생할 수 있습니다.

버전 업데이트를 확인하는 유일한 방법은 컴파일을 실행하고 모든 테스트 사례를 실행하는 것입니다. 가능한 모든 버전 업데이트의 조합에 대해이 작업을 수행 할 수는 있지만 시간이 오래 걸립니다.

+0

모든 응답이 양호합니다. 응답 한 첫 번째 사용자로 받아들입니다. –

2

플러그인은 코드를 분석하지 않고 이에 따라 종속성 버전을 조정하지 않습니다.

목표 use-latest-versions의 목표는 프로젝트를 프로젝트 종속성의 최신 릴리스로 업그레이드하는 것이며, 이로 인해 편집 및 배포 문제가 발생할 수 있습니다. 문제를 확인한 후에는 전체 프로젝트가 최신 의존성 릴리스로 업그레이드되도록 모든 문제점을 수정해야합니다.

2

문제는 일부 라이브러리가 아닌 이전 버전에서 사용되는 패키지의 일부를 포함 않도록 컴파일러 패키지를 찾을 수 없습니다라고 로 새로 버전으로 업데이트된다는 것입니다. 누구든지 을 자동으로 피하는 방법을 알고 있습니까? 내 코드에서 사용중인 패키지 및 클래스가있는 최신 버전으로 업데이트하십시오.

물론 가능하지 않습니다.

업데이트 종속성은 우연한 게임이 아닙니다.
종속물의 최신 버전이 필요한 경우,이 버전이 필요할 경우 코드가 손상되거나 손상되지 않도록 걱정하지 않아야합니다.
라이브러리를 업데이트하려면 해당 버전을 업데이트해야합니다. 의존성을 업데이트 할 필요가 없다면 의존성을 업데이트하지 말고 필요하다면 필요하다면 코드를 업데이트해야한다.