Java 从公共项目中排除依赖关系

Java 从公共项目中排除依赖关系,java,maven-2,maven,Java,Maven 2,Maven,我现在有三个项目组成了一个依赖链,projecta依赖于projectb依赖于projectc 在projectb中,我试图排除引起weblogic问题的xmlapijar。我在项目B的POM中这样做: <dependency> <groupId>com.company</groupId> <artifactId>projectC</artifactId> <version>1.0.3-SNAPSHO

我现在有三个项目组成了一个依赖链,
projecta
依赖于
projectb
依赖于
projectc

projectb
中,我试图排除引起weblogic问题的
xmlapi
jar。我在
项目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>

com公司
项目C
1.0.3-快照
xml API
xml API
但是,当我打包项目A时,
XMLAPI
工件仍然被包括在内。排除这个
XMLAPI
jar的正确方法是什么?我是否应该在
projectc
中找到确切的软件包,并将其标记为提供的

现在我的解决方法是在
项目A
的POM中列出上述依赖项

编辑:


项目A
依赖于
项目B
项目C
。由于
项目B
依赖于
项目C
如果没有
项目C
项目B
将永远无法使用,因此我希望不必在
项目a
中包含依赖性信息,
项目B
项目B不依赖于a。在C依赖项。

项目B的pom声明它使用项目C,只是它(项目B)不需要xml API

ProjectA的pom还声明它使用ProjectC,但没有说它不需要XMLAPI,因此maven假设它确实需要它们


您可以将对xml API的依赖添加到提供范围为的项目A中,这意味着您需要它们,但要确保实现可用且不希望maven包含它们,或者您可以删除项目A对项目C的依赖。

问题不清楚,可能清楚,但令人困惑。只需执行mvn dependency:tree
,检查并排除正确pom中所需的依赖项,无论是A、B还是C。

。上面的代码段来自我的项目B。请参阅我的编辑。刚刚注意到POM代码段中有项目A。已修复。@Casey您现在似乎有一个POM说项目B依赖于项目B,但问题的描述是准确的。