【问题标题】:Excluding nested transitive dependency in maven排除maven中的嵌套传递依赖
【发布时间】:2012-12-13 15:00:09
【问题描述】:

我的项目依赖jparsec,又依赖cglib,又依赖asm。我的项目也直接依赖asm,但是比cglib更新的版本依赖:

看来我不能从我的jparsec 依赖项中排除asm。当我尝试用 Eclipse 排除它时,它对我的​​ pom.xml 没有任何改变。如果我手动排除它,它没有效果。

我在这里唯一的选择是从jparsec 中排除cglib,然后手动添加对cglib 的依赖项并排除asm?这对我来说似乎有点令人费解,但确实有效。

【问题讨论】:

  • 是的,这是解决此问题的有效选项。另一种选择是将 asm 依赖项放在 pom.xml 中的 jparsec 依赖项之上。
  • @Andrew:谢谢。将asm 放在jparsec 之前允许排除针对asm 而不仅仅是针对cglib。我不确定它在技术上是否需要(它没有排除),但我还是添加了它以明确。如果您添加答案,我会接受。

标签: java maven dependencies


【解决方案1】:

我原以为如果您在 POM 中将 asm 放在 jparsec 之前,则不需要排除。 Maven "nearest definition" 行为将启动以确保仅使用 4.1

【讨论】:

    【解决方案2】:

    根据我的评论,您有 2 个选项来解决此问题:

    1. 您建议的那个,例如从jparsec 中排除cglib 并添加cglib 并排除asm
    2. jparsec 依赖项上方找到您的asm 依赖项。

    【讨论】:

      猜你喜欢
      • 2018-07-06
      • 2017-05-17
      • 2019-10-29
      • 2021-10-24
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多