【问题标题】:Maven dependency exclusionMaven依赖排除
【发布时间】:2017-09-14 01:59:30
【问题描述】:

我有以下依赖树:

Project A
   ----Project B
           -----Project D
                 --------Project G
   ----Project C
           -----Project E
                 --------Project H
           -----Project F

项目 G 的 jar 不再可用,在构建期间不应尝试下载它。
唯一可访问的 pom 是项目 A 的 pom,其中包含项目 B 的依赖项。
所以我们在 pom 中添加了以下内容:

<dependency>
      <groupId>xxxxx</groupId>
      <artifactId>Project B</artifactId>
      <version>xxxx</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>Project G</artifactId>
          <groupId>xxxxxx</groupId>
        </exclusion>
      </exclusions>
</dependency>

在更高级别的依赖项上添加排除项会起作用吗?
我们如何避免在构建过程中下载项目 G?

【问题讨论】:

  • 项目 E 是项目 C 而不是 B 的依赖项,您必须在那里排除它
  • 使用mvn dependency:tree 找出它的引用位置
  • 截取的代码应该可以正常工作

标签: maven pom.xml dependency-management


【解决方案1】:

是的。排除适用于任何级别。通常,我会为项目 D 而不是 B 使用排除项,因为项目 D 是依赖的直接原因。

但是请注意,任何其他路径仍然可以将 G 作为依赖项引入,因为没有全局排除语句。

【讨论】:

    猜你喜欢
    • 2012-02-25
    • 2019-10-29
    • 2021-10-24
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2012-04-22
    相关资源
    最近更新 更多