2010-12-23 122 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.