2017-03-07 84 views
3

處理多模塊項目。Maven:依賴關係出現在有效的pom中,但不在依賴關係樹中

GrandParent 
     \ 
     Parent 
      \ 
      Child 

GrandParentrogue_1模塊在其<dependencyManagement>部分爲提供

Parent確實在其pom.xmlrogue_1可言。

Child確實rogue_1在其pom.xml的直接依賴。

但是它包括幾個其他項目,其中一些可能包括rogue_1。 (至少一個確實取決於rogue_1

爲了安全起見,在ALLChild的依賴關係我已經加入排除如下:

<dependency> <!-- a direct dependency of Child --> 
    <groupId>erso</groupId> 
    <artifactId>galen</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>resistance</groupId> 
      <artifactId>rogue_1</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

(在情況下,例如galen.erso帶來的resistance.rogue_1

然而rogue_1DOES最終被顯示在

mvn help:effective-pom

結果的相關性(如提供!)

這是

mvn dependency:tree

的ouctome

有什麼建議嗎?

回答

1

mvn help:effective-pom

基本上是超級POM(大/ +父母)的依賴,並且您在項目級別定義的簡單POM之間的合併。因此,您看到由effective-pom創建的XML下的rogue_1,當然您的祖父母pom的dependencyManagement是源代碼。這裏是一個detailed read

mvn dependency:tree

,另一方面

顯示在你的項目中使用的依賴關係的TRE。正如你所提到的,你已經排除了所有你提到的依賴關係,所以你不應該在這裏列出這個工件。

順便說一下,在這兩種情況下,您的child模塊的類路徑中rogue_1的機率爲零。

0

你可能會得到這樣的行爲,如果你有一個配置文件或者在您的項目,或一個你繼承(並以某種方式得到激活)。至於我記得,在<profile/>定義依賴不上的依賴關係樹顯示出來。