【问题标题】:Will Maven pick the latest dependency out of two?Maven 会从两个中选择最新的依赖项吗?
【发布时间】:2017-03-20 15:28:30
【问题描述】:

这个问题可能已经有了答案,但我找不到满意的答案。我刚刚将jersey jar 更新为最新的。我从Parent project 中得到jersey 依赖项,它还包含另一个项目作为使用较低版本的jersey 的依赖项。我没有更新这个项目中的jersey jars。更新罐子后,我看到两个版本的jersey client,其中一个是最新的,另一个来自使用较低版本的项目。范围是编译。我的应用程序运行良好,但在 lib 文件夹中,我看到两个版本的球衣客户端 1.17 和 2.25.1。这会导致任何问题还是 Maven 将始终使用 2.25.1?

谢谢

【问题讨论】:

标签: java web-services maven jersey


【解决方案1】:

Maven 将始终采用离你的依赖树根最近的依赖。如果两个不同的版本在同一级别,则将采用第一个声明的版本。举个例子:

pom.xml
|--A:1.0
|--B:1.0
|  |--A:2.0
|  |--C:1.0
|  |--D:2.0
|--C:2.0
   |--D:1.0

这里,库A:1.0B:1.0C:2.0D:2.0 已解决。虽然 ABC 的版本是因为最接近根而被采用,但 D 的版本是因为它被首先声明而被采用。

【讨论】:

  • 有道理。谢谢 SilverNak。
猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2012-12-04
  • 2012-12-22
  • 2012-09-30
  • 2014-10-13
相关资源
最近更新 更多