Maven 会从两个依赖项中挑选最新的依赖项



这个问题可能已经有了答案,但我找不到令人满意的答案。我刚刚将jersey罐子更新为最新版本。我从Parent project中获得了jersey依赖项,该还包含另一个项目作为依赖项,该依赖项使用较低版本的jersey。我没有更新这个项目中的jersey罐子。更新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 的版本是因为它是首先声明的。

相关内容

  • 没有找到相关文章

最新更新