2012-05-24 166 views
2

如何排除父pom中的排除對子排除有影響嗎?排除是否是添加劑?這裏有一個例子:對maven依賴關係中「排除」排除的影響

.... 
<dependencyManagement> 
    <dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>${hibernate.version}</version> 
    <exclusions> 
     <exclusion> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     </exclusion> 
    </exclusions> 
    </dependency>  
</dependencyManagement 
.... 

兒童POM -

..... 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>cglib</groupId> 
       <artifactId>cglib</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    .... 

歸根結底,都commons-collectionscglib排除在外?如果是這樣,我有什麼辦法可以爲子項目「帶回」commons-collections

+0

什麼'MVN幫助:有效-pom'說? –

+0

@AndrewLogvinov哦,這個男人..這是可怕的..它有兩個元素。哪一個勝利? – Chip

+0

你可以將相關章節發佈到[pastebin](http://pastebin.com/)嗎? –

回答

1

是的,Maven的排除是相加的。你將有兩個例外。沒有辦法取消一些繼承排除,而不是將其重用爲自己的依賴項。

順便說一句,這是約1-2分鐘,在自己的電腦來驗證這...

+1

感謝您的回答。我證實了這一點,當然:)。我想知道這是否是有記錄的行爲 - 因爲我無法在任何地方找到它。如果未成年人版本發生變化,我不希望這樣突然改變。另外,「重新使用」依賴關係的問題是我必須自己跟蹤版本,不能僅依靠更改$ {hibernate.version} – Chip

+0

好。我也不知道它是否記錄在任何地方,但依賴管理背後的機制對於任何類型的依賴關係設置('scope','version'或'exclusions')來說都非常直接和通用。恕我直言,你可以肯定它會以這種方式工作。 –