java - 来自父项目的依赖位于 Maven 依赖树的哪一层

标签 java maven dependencies dependency-tree

我有一个父 pom,它依赖于版本 1.0 的第三方 jar A。然后我有一个从父 pom 继承的子项目。该子项目定义了对库 B 的依赖关系,而库 B 本身又依赖于版本 1.1 的第三方 jar A。

依赖树看起来像这样吗(因此引入了 1.0 版本):

子->A(版本1.0) 子级->B->A(版本1.1)

父 POM 的依赖关系位于依赖关系树的哪一层?

最佳答案

在解决依赖关系之前,父 POM 和子 POM 首先组合成“有效 POM”。您可以使用 mvn help:effective-pom 显示有效的 POM 。因此你的依赖树变成:

  (Effective POM) -> A:1.0
  (Effective POM) -> B     -> A:1.1

效果与您在子 POM 中声明 A:1.0 依赖项相同。由于依赖项更接近 Maven 中的根“win”,因此使用 A:1.0。

此外,如果父 POM 和子 POM 都声明对同一模块的依赖关系,则子 POM 指定的版本将覆盖父 POM 指定的版本(= 成为有效 POM 中的版本)。

关于java - 来自父项目的依赖位于 Maven 依赖树的哪一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60046025/

相关文章:

java - Maven:站点和安装可以互换吗?

java - 奇怪的 jboss 控制台错误

javascript - Node.js/npm - 无论如何判断一个包是否是纯 JS?

java - 从外部生成线程检测另一个线程的实例

java - 在Sqoop文件导入中,我想使用定义的映射器在文件拆分中控制导入的数据

java - 如何直接使用Java主资源文件夹中的JAR文件

java - 帮助我理解如何使带有非 Maven jar 依赖项的 Maven 项目可供其他人使用

c - C 中的一对一链接

java网络摄像头调整快门速度

Java 线程未启动?