我已经在父pom的导入的dependencyManagement部分中指定了一个库的版本。我证实我的有效pom只有一次发生这种依赖。它位于dependencyManagement部分:maven执行者是否忽略dependencyManagement部分?
<dependencyManagement>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>[3.18.1-GA]</version>
</dependency>
</dependencyManagement>
这应该覆盖传递依赖关系的版本,具体取决于它。 Maven的依赖关系的插件:2.8:树印:在安装(和重新安装依赖匹配版本范围),org.apache.maven.plugins后
org.javassist:javassist:jar:3.18.1-GA:compile (version selected from constraint [3.18.1-GA,3.18.1-GA])
但(最初,而不需要重新安装依赖关系)的执行者抱怨错误版本:
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for org.javassist:javassist:3.18.2-GA paths to dependency are:
...
,并表明第一传递依赖使用
org.javassist:javassist:3.18.2-GA
它来自依赖,反过来取决于:
<dependencies>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
</dependency>
</dependencies>
,另一个则使用
org.javassist:javassist:3.18.1-GA
为什么实施者与依赖关系树不一致?什么可能是错的?如果我使用版本界限,他们会受到尊重,我可以跳过使用执行者为此目的?
另外,向相关项目模块添加依赖项并不会改变任何内容。