我有一个父 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/