假设我有一个复杂的项目,有很多依赖项。依赖项的版本由大量导入范围 pom 管理。我的项目依赖于工件group:artifact
,它依赖于工件group:transitive-dependency
。当我跑步时dependency:tree
我看到这样的事情:
+- group:artifact:jar:1.3
+- group:transitive-dependency:jar:1.1 (version managed from 1.3)
问题是group:artifact:1.3
需要group:transitive-dependency
1.3 或更高版本。当然,其中一个导入 pom 强制使用了错误的版本。但除了搜索所有这些之外,还有什么方法可以知道哪一个是哪一个呢?
您应该尝试使用 maven-enforcer-plugin 并将其配置为执行 DependencyConvergence,例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
这将向您显示哪些顶级依赖项在其依赖项树中具有其他依赖项的不同版本。然后,您可以使用排除来抑制不需要的依赖项变体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)