2013-08-02 3 views
0

나는 m2e 플러그인으로 일식에서 메이븐 프로젝트를 가지고있다. Dependency 계층 구조는 아래 그림과 같이 3.0.0.RELEASE 대신 Spring 3.2.3을 생략하고 있음을 보여줍니다. 그렇지 않으면 어떻게해야합니까? 이전 버전을 생략하고 최신 버전을 유지해야합니까? 종속성 충돌을 해결하면서 메이븐 nearest wins strategy의 원리로 작동봄의 이전 버전을 포함하는 메이븐

enter image description here

답변

3

, 즉이 가까이 트리에서 발견 중 버전은 해당 버전을 다른 버전을 무시 의미합니다. 실행할 수있는 경우

-이 버전 3.0을 복용 이유가 그래서

mvn dependency:tree -Dverbose -Dincludes=spring-aop 

당신은 트리 계층 버전 3.0.0에있는 것을 알 수는 버전 3.2.3에 비해 일찍오고있다 의존성을 해결하기위한 .0 버전.

솔루션 : 이러한 유형의 문제에 대한 권장 해결책으로는 부모 pom.xml 파일에서 적절한 종속성 관리가 필요합니다. 귀하의 경우에 당신이 뭔가 사장님 전자이 가질 수처럼 : 이제 상관없이 때마다 메이븐 spring-aop의 버전을 해결하기 위해 무엇을하려고

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>3.2.3</version> 
     </dependency> 
    <dependencies> 
    </dependencyManagement> 

을 항상 종속성 관리를 상담하고 dependencyManagement에서 정의 된 버전을 사용합니다.

자세한 내용은 내 블로그에서 참조하십시오. how maven resolves dependency conflicts

관련 문제