2016-07-14 2 views
0

dependencyManagement 섹션에 일부 아티팩트 버전을 정의한다고 가정 해 보겠습니다.dependencyManagement가 종속성 정의의 버전보다 정확히 언제 발생합니까?

이 버전 정의가 의 모든 버전 정의를 덮어 쓰는 것이 맞습니까? 종속성이 있습니까?

아니면 버전 충돌 만 해결합니까?

내 dependencyManagement에서 버전 2.0.0에 foo를 넣었을 때 일부 전 이적 종속성이 버전 1.0.0에서 foo를 갖으면 항상 2.0.0을 얻습니까?

답변

0

이것이 Maven 2에서 작동하는 방법입니다. 그리고 일반적으로 기본 규칙이 있습니다. 프로젝트가 지정하는 것이 종속성이 지정하는 것보다 우선합니다.

그러나, Maven 3.x Compatibility Notes에 따르면,이 과정은 지금은 Aether를 사용하고 스마트 있어야하고 어쩌면 version ranges를 사용하지 않는 경우에도 고려 의미 버전을 메이븐 3에 변경되었습니다. 필자의 의견으로는 문서화가 널리 퍼져 있으며 분명하지는 않다. 주된 차이점은 프로젝트와 종속성 사이가 아니라 두 종속성간에 충돌이 어떻게 해결되는지입니다. 따라서 첫 번째 규칙은 여전히 ​​적용되어야합니다.

관련 문제