maven - "overriding"排除在 Maven 依赖项中的影响

标签 maven dependency-management maven-dependency-plugin

子 pom 中的排除如何影响父 pom 中的排除?排除项是否具有累加性?这是一个例子:

....
<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 吗?

最佳答案

是的,Maven 的排除是附加的。您将同时获得这两项排除。除了将其重新添加为新的本地依赖项之外,无法取消某些继承的排除。

顺便说一句,在您自己的计算机上验证这一点大约需要 1-2 分钟...

关于maven - "overriding"排除在 Maven 依赖项中的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10734565/

相关文章:

java - 如何在 Maven 中安装特定包的两个不同版本?

java - Maven Jetty 垃圾邮件警告 "scanned from multiple locations"

java - AWS Java SDK 错误 - java.lang.NoSuchMethodError

r - packrat:从 src 目录中删除旧包版本

java - Maven-dependency-plugin 和带有 SOURCE RetentionPolicy 的注释

java - 不相关项目之间的共享依赖关系

spring - Maven BOM用于解决Spring + Spring Data + Spring Security的依赖?

go - "go get -t ./...",Travis CI,并安装所有 go 依赖项

java - Maven的pom.xml中的pluginManagement是什么?

java - 如何获取 Maven 项目的外部依赖项的聚合列表?