在Eclipse中,当我转到Maven Dependency Hierarchy页面时,我得到输出,说明导致版本被忽略的冲突:
但是,如果我使用dependency:tree,那就省略了,我只看到实际使用的版本:
| +- commons-httpclient:commons-httpclient:jar:3.1:compile
| +- commons-codec:commons-codec:jar:1.4:compile
| +- commons-io:commons-io:jar:2.4:compile
| +- commons-net:commons-net:jar:3.1:compile
| +- javax.servlet:servlet-api:jar:2.5:compile
后来实际引用的版本......
+- commons-collections:commons-collections:jar:3.1:compile
有没有办法获得依赖:树输出为冲突省略的版本?
谢谢!
答案 0 :(得分:12)
是的,您可以通过将verbose
属性设置为true
来获取省略的工件:
是否在序列化依赖关系树中包含省略的节点。
此属性默认为false
。在命令行上,您将有
mvn dependency:tree -Dverbose=true
答案 1 :(得分:0)
根据this,在插件的3.0版及更高版本中,-Dverbose=true
参数将被忽略。您需要使用旧版本;上面的链接建议以下内容(对我有用):
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:tree -Dverbose=true
答案 2 :(得分:0)
我建议使用 depgraph-maven-plugin。
showDuplicates
设置为 true
dependency:tree
将与 verbose
选项一起显示的依赖项showConflicts
设置为 true示例配置:
<plugin>
<groupId>com.github.ferstl</groupId>
<artifactId>depgraph-maven-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<showDuplicates>true</showDuplicates>
<showConflicts>true</showConflicts>
<includes>
<!-- groupId:artifactId:type:classifier -->
<include>com.mycompany*:*</include>
</includes>
</configuration>
</plugin>
然后在您的项目中运行 mvn depgraph:graph
以在 target/dependency-graph.dot
中查找新文件。
请注意,您可以包含范围为 provided
的插件,这样它就不会包含在任何构建工件中。