【发布时间】:2015-01-14 06:16:57
【问题描述】:
我在父 pom 的导入依赖管理部分中指定了一个库版本。我确认我的有效 pom 只有一次出现这种依赖性。它在依赖管理部分:
<dependencyManagement>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>[3.18.1-GA]</version>
</dependency>
</dependencyManagement>
这应该覆盖传递依赖的版本,具体取决于它。安装(并重新安装依赖项以匹配版本边界)后,org.apache.maven.plugins:maven-dependency-plugin:2.8:tree 打印:
org.javassist:javassist:jar:3.18.1-GA:compile (version selected from constraint [3.18.1-GA,3.18.1-GA])
但是(最初,没有重新安装依赖项)enforcer 抱怨版本错误:
[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
为什么执行器与依赖树不一致?有什么问题?如果我使用版本限制,它们是否会受到尊重,并且我可以跳过为此目的使用强制执行器?
此外,向相关项目模块添加依赖项不会改变任何内容。
【问题讨论】:
标签: maven maven-enforcer-plugin