java - Maven 会从两个依赖项中选择最新的依赖项吗?

标签 java web-services maven jersey

这个问题可能已经有了答案,但我找不到满意的答案。我刚刚将 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.0B:1.0C:2.0D:2.0得到解决。而 ABC 的版本因为最接近根而被采用,D 的版本被占用是因为它是先声明的。

关于java - Maven 会从两个依赖项中选择最新的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907612/

相关文章:

java - 有没有办法在Java中手动重新 HashMap ?

java - 如何从不同级别的 div 定义 xpath

java - Maven 引入 POM 中未指定的依赖项

java - 用于查找给定距离内所有地理点的Android算法

java - 我可以使用 Apache Camel 调用 Web 服务并返回响应吗?

java - 如何使用t24格式发送SOAP请求

java - 使用JAVA检查日期是否在MongoDB列中的两个日期之间

java - Jenkins : Add custom jar in maven project

tomcat - 在应用服务器上运行maven项目

java - 为什么结果不是1?