【问题标题】:Maven exclude transitive dependency of a transitive dependencyMaven 排除传递依赖的传递依赖
【发布时间】:2018-07-06 04:40:49
【问题描述】:

在 pom 文件中是否有一种语法方式来排除传递依赖的依赖。

例如,如果A有依赖B,B有依赖C,C又依赖D,那么在编译A的时候可以排除依赖D。

依赖项的排除似乎只深入一级。

我过去如何做到这一点是在 A 的 pom 中包含依赖 C,然后在 C 的依赖声明中添加对 D 的排除。这是推荐的方式吗?

【问题讨论】:

    标签: maven dependencies dependency-management


    【解决方案1】:

    您可以将D<exclusions> 元素添加到A 的POM 中的依赖项B。排除在传递依赖项上递归工作。

    对复杂项目执行此操作的一个好方法是在父 POM 中使用 <dependencyManagement> 元素,该元素排除您不想在任何地方看到的任何内容。

    【讨论】:

    • 感谢您的意见。我本可以发誓我尝试过这个,但依赖关系仍然包括在内。我只能排除两个层次的传递依赖。所以在这种情况下,我能够排除依赖项 C,但不能排除 D。当我有时间时,我将不得不再试一次
    • 它适用于我的情况。也许这是旧版本 Maven 中的一个错误,后来已经修复?
    • 你使用的是哪个版本的maven?我相信这个错误是在 3.0.5 的更高版本中引入的。使用 maven 版本 3.0.5。
    • 我刚刚检查了最新版本的 Maven,它工作正常。当我开始工作时,我会比较版本,但它必须是过时的。我会标记你的答案和最终结果。谢谢
    猜你喜欢
    • 2019-10-29
    • 2021-10-24
    • 1970-01-01
    • 2016-04-20
    • 2021-07-26
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    相关资源
    最近更新 更多