2010-12-23 162 views
1

依賴我有三個項目,現在這種形式的依賴關係鏈,Project A取決於Project B取決於Project C不包括共同項目

Project B,我試圖排除xml-apis罐子,是造成問題與WebLogic。我這樣做像這樣的Project B POM:

<dependency> 
    <groupId>com.company</groupId> 
    <artifactId>projectC</artifactId> 
    <version>1.0.3-SNAPSHOT</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>xml-apis</artifactId> 
      <groupId>xml-apis</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 

但是,仍然被列入xml-apis神器,當我打包項目A.什麼是排除這種xml-apis罐子正確的方法是什麼?我是否應該找到Project C中的哪個包裝正在將其加入並將其標記爲已提供?

現在我的解決方法是隻列出Project A的POM以上依賴。

編輯:

Project AProject BProject C的依賴。由於Project BProject C依賴和Project B將永遠不會沒有Project C我希望沒有包括Project AProject B依賴信息使用。

回答

2

項目B的pom聲稱它使用了C項目,只是它(項目B)不需要xml-apis。

項目A的POM還指出,它使用項目C,但沒有說不需要XML的API,因此行家假設它確實需要他們。

您可以使用提供的範圍將xml-apis的依賴項添加到項目A,這意味着您需要它們,但是您要確保實現可用,並且不希望Maven包含他們,或者你可以刪除項目A對項目C的依賴。

0

項目B不依賴於A.在C的依賴關係中,在b的pom中插入excludes語句。

+0

我做到了。上面的代碼片段來自我的項目B.請參閱我的編輯。 – Casey 2010-12-23 19:09:20

0

這個問題不清楚,也許很清晰但令人困惑。只是不要mvn dependency:tree,檢查並排除你在正確的POM需的依賴,無論是A或B或C.