【问题标题】:Maven - Excluding Transitive DependenciesMaven - 排除传递依赖
【发布时间】:2015-10-07 16:38:45
【问题描述】:

我正在尝试在 pom 文件中使用以下内容来排除传递依赖

 <dependency>
      <groupId>xxxxx</groupId>
      <artifactId>xxxxxx</artifactId>
       <exclusions>
          <exclusion>
            <groupId>yyyyyyy</groupId>
            <artifactId>yyyyyyy</artifactId>
          </exclusion>
        </exclusions>
    </dependency>

其中 xxxxxx 是我需要的项目。我试图避免传递依赖项目 yyyyyy,因为它与我已经作为依赖项的同一项目的其他版本冲突。

当我使用此配置构建项目并刷新 Eclipse 时,项目 yyyyyyy-version.jar 仍显示在我的类路径条目中。我必须手动删除该类路径条目才能使其正常工作。

请指导我在这里做错了什么。如何在 pom 文件中指定排除项,这样我就不会得到这个类路径条目。谢谢。

更新 - 我在构建中没有任何问题,但是当我尝试运行应用程序时,它在项目的 2 个版本中找到了一个特定参数 - 所需的参数和不希望的参数作为传递依赖项出现。

【问题讨论】:

  • 它明确是唯一依赖它的东西(不需要的库/版本)吗?
  • 感谢戴夫的帮助。当我看到依赖树时,我没有看到这个不需要的库/版本。不确定它是如何进入类路径的。
  • 这是我得到的错误 - 文件中的参数 ' (fileType DECLARATION) jar:file: (undesired project /version) 之前在 jar:file: ( Desired project / version) (fileType声明)。

标签: java eclipse maven build


【解决方案1】:

执行mvn dependency:tree 并分析谁也有这种传递依赖。目前,没有全局排除功能,但存在适当的JIRA issue

【讨论】:

  • 在 pom 文件中排除上述内容后,我尝试在 paremt 项目上运行 mvn dependency: tree ,但令人惊讶的是,我在依赖树中没有看到这个(不需要的项目版本)。不确定它是如何出现在我的类路径条目中的。
  • 这是我得到的错误 - 文件中的参数 ' (fileType DECLARATION) jar:file: (undesired project /version) 之前在 jar:file: (Desired project / version) (fileType声明)。
  • @Michael-O 你能解释一下你的意思吗:'目前,没有全局排除功能,但有适当的 JIRA 问题可用'?
  • @khmarbaise 我已经链接了 JIRA 问题。在我的回答中。措辞不妥。
猜你喜欢
  • 2018-07-06
  • 2021-10-24
  • 2019-10-29
  • 2016-04-20
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多