2013-08-30 40 views
6

在POM的依賴管理部分中是否存在兩個不同版本的相同工件的有效用例?Maven - 依賴管理中的多個工件版本

我正在看一個項目的根POM包含這樣一個例子。該項目本身有多個模塊,使用不同版本的「重複依賴」。因此,一些模塊必須在它們的依賴關係中明確指定工件的版本以便區分這兩者。

如果模塊的POM文件無論如何都必須指定版本,那麼在父級依賴管理中進行重複的原因是什麼?即使從依賴管理中刪除了依賴關係,也會正確查找依賴關係,那麼爲什麼要首先將它複製到那裏呢?

我只是想弄清楚這是否是一種好的做法,或者是否有更好的解決方案來解決這種情況。

回答

7

其實,如果你使用的是Maven3 +,你會得到這樣的警告:

[WARNING] 
[WARNING] Some problems were encountered while building the effective model for groupId:artifactId:jar:1.0-SNAPSHOT 
[WARNING] 'dependencyManagement.dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: junit:junit:jar -> version 3.8.1 vs 3.0 @ line 15, column 18 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
[WARNING] 

Maven會拿起第一,所以第二個將永遠不會被使用。只是刪除它,以防止更多的困惑:)