如何在maven中排除嵌套依赖项

时间:2014-01-22 17:40:10

标签: java spring maven dependency-management spring-ws

我有这个依赖树:

[INFO] +- org.springframework.ws:org.springframework.ws:jar:2.1.0.RELEASE:compile
[INFO] |  +- org.springframework:org.springframework.aop:jar:3.1.1.RELEASE:compile
[INFO] |  |  \- org.aopalliance:com.springsource.org.aopalliance:jar:1.0.0:compile
[INFO] |  +- org.springframework:org.springframework.oxm:jar:3.1.1.RELEASE:compile
[INFO] |  \- org.springframework.ws:org.springframework.xml:jar:2.1.0.RELEASE:compile
[INFO] |     \- org.apache.ws:com.springsource.org.apache.ws.commons.schema:jar:1.3.2:compile

我想排除(最后一个):

  

org.apache.ws:com.springsource.org.apache.ws.commons.schema:jar:1.3.2

(根据它的pom):

<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>

所以我在root工件中定义( org.springframework.ws ):

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>org.springframework.ws</artifactId>
    <version>2.1.0.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.ws.commons.schema</groupId>
            <artifactId>XmlSchema</artifactId>
        </exclusion>
    </exclusions>
</dependency>

没有任何改变。我想要排除的神器仍然存在。任何人都可以帮助我如何让它工作?

1 个答案:

答案 0 :(得分:3)

排除不排除单独的类。它适用于工件,即jar文件。您确实可以使用以下标记排除第三方依赖项:

    <exclusion>
        <groupId>org.apache.ws</groupId>
        <artifactId>com.springsource.org.apache.ws.commons.schema</artifactId>
    </exclusion>

其中:

  • org.apache.ws是群组ID
  • com.springsource.org.apache.ws.commons.schema是工件ID

(来自您的依赖树示例)。

我不具备排除特定类的内置功能。