有没有办法全局排除 Maven 依赖项?

2024-02-22

我试图找到一种“通用”方法来排除传递依赖项,而不必将其从依赖于它的所有依赖项中排除。例如,如果我想排除 slf4j,我会执行以下操作:

  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-jmx</artifactId>
    <version>3.3.2.GA</version>
    <exclusions>
      <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.4.0.GA</version>
    <type>jar</type>
    <exclusions>
      <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
      </exclusion>
    </exclusions>
  </dependency>

这部分是为了清理 pom 文件,部分是为了避免将来人们添加依赖于已排除依赖项的依赖项而忘记排除它时出现问题。

有办法吗?


这有帮助吗?http://jlorenzen.blogspot.com/2009/06/maven-global-excludes.html http://jlorenzen.blogspot.com/2009/06/maven-global-excludes.html

“假设我想从我的 WAR 中排除 avalon-framework,我会将以下内容添加到我的项目 POM 中,并提供范围。这适用于所有传递依赖项,并允许您指定一次。

<dependencies>
  <dependency>
      <artifactId>avalon-framework</artifactId>
      <groupId>avalon-framework</groupId>
      <version>4.1.3</version>
      <scope>provided</scope>
  </dependency>
</dependencies>

这甚至在父 POM 中指定它时也有效,这将防止项目必须在所有子 POM 中声明它。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法全局排除 Maven 依赖项? 的相关文章

随机推荐