maven依赖冲突解决方案

时间:2013-11-06 05:48:09

标签: java maven dependency-management

所以当我有如下的依赖冲突时:

我的pom想要A,并且在X版本3.0中有几个级别。这是我想要的X.

我的pom也想要B,并且在X版本2.0中有几个级别。我不想要。

由于默认的maven依赖关系解析,版本2.0获胜。

请注意,A,B和X是第三方库,所以我无法控制它们。

现在,我已经看到了两种解决方法:

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

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

1 个答案:

答案 0 :(得分:1)

取决于:)

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