我的软件中有一个复杂的传递依赖树。这些依赖项的版本由(可传递的)依赖项管理块管理。一个依赖项的有效版本不正确 (1.2.1
)。如果我转储依赖树,它会显示使用了此依赖关系的错误版本,例如:
com.example.artifact:1.2.1 (managed from 1.3.0-SNAPSHOT) [compile]
我找不到此无效版本的原因。依赖树没有多大帮助!如何找出特定托管版本的来源?
我知道
这个答案来得晚了好几年,但是在遇到同样的问题几分钟后,我可以通过以下方式解决它:
- 显式将传递依赖项添加到 pom .xml而不带版本标记:
<dependencies>
...
<dependency>
<groupId>com.example</groupId>
<artifactId>artifact</artifactId>
</dependency>
- 至少在 Eclipse IDE 中,您现在可以将鼠标悬停在工件上,工具提示将显示它的管理位置(通常是父
pom.xml
或具有作用域导入的依赖项)。<scope>import</scope>
将 verbose
标志添加到maven-dependency-plugin
应该可以帮助您:
mvn org.apache.maven.plugins:maven-dependency-plugin:3.5.0:tree -Dincludes=com.example:artifact -Dverbose=true