2013-08-02 58 views
0

我有一个maven项目在日食与m2e插件。依赖层次结构显示它省略了Spring 3.2.3,取代了3.0.0.RELEASE,如下所示。否则如何去做?它是否应该不遗漏旧版本并保留最新版本?Maven包括老版本的弹簧

enter image description here

回答

3

Maven的作品上的nearest wins strategy原则,同时解决依赖冲突,这意味着无论哪个版本,它发现树越近,它会采取并忽略其他版本。

你的情况时,你可以运行 -

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

你会发现,在树状分层结构3.0.0版本较早进来的比较3.2.3版本,所以这就是为什么它正在3.0版本.0版本用于解决依赖关系。

解决方案:作为这些类型的问题的推荐解决方案是在您的父pom.xml文件中具有适当的依赖关系管理。像你的情况,你可以有一些LIK E本:

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

现在不管什么时候Maven的尝试解决版本spring-aop,它将始终咨询依赖管理,并且将使用dependencyManagement下定义的版本。

欲了解更多,你可以在这里我的博客:how maven resolves dependency conflicts