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