这个问题可能已经有了答案,但我找不到满意的答案。我刚刚将 jersey
jar 更新到最新版本。我从 Parent project
获得 jersey
依赖项,它还包含另一个项目作为依赖项,它使用较低版本的 jersey
。我不会更新此项目中的 jersey
jar。更新 jar 后,我看到 jersey client
的两个版本,其中一个是最新的,另一个来自使用较低版本的项目。范围是编译。我的应用程序运行正常,但在 lib 文件夹中我看到两个版本的 Jersey 客户端 1.17 和 2.25.1。这会导致任何问题还是 Maven 将始终使用 2.25.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.0
、B:1.0
、C:2.0
和 D:2.0
得到解决。而 A
、B
和 C
的版本因为最接近根而被采用,D
的版本被占用是因为它是先声明的。
关于java - Maven 会从两个依赖项中选择最新的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907612/