【问题标题】:maven dependency clash resolutionmaven依赖冲突解决
【发布时间】:2013-11-06 05:48:09
【问题描述】:

所以当我遇到如下依赖冲突时:

我的 pom 想要 A,并且向下几个级别拉入 X 版本 3.0。这就是我想要的 X。

我的 pom 也想要 B,再往下几级,它就会拉入 X 版本 2.0;我不想要。

由于默认的 maven 依赖解析,2.0 版胜出。

请注意,A、B 和 X 是第 3 方库,因此我无法控制它们。

现在,我已经看到了两种处理方法:

1) 只需将 X 版本 3.0 作为依赖项添加到我的 pom 中。 2) 向 B 添加一个“排除”,以排除 X。

哪个更好,为什么?或者它是那些“它取决于”之一?

【问题讨论】:

  • 使用排除,因为这是解决冲突的好方法

标签: java maven dependency-management


【解决方案1】:

这取决于:)

  • 如果您需要X 以使您的 代码正常工作(您在代码中使用了X 中的一些类),那么直接将X 添加到您的pom 中。通过这样做,您可以清楚地表明这一事实。
  • 如果您需要X 才能使 代码工作(仅在运行时需要),那么只需将其从B 中排除并保留在A 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2023-02-02
    • 2011-03-12
    • 2013-06-24
    相关资源
    最近更新 更多