idea 可视化使用
查看依赖树
如图,点击 maven,展开项目,可以看到 Dependencies。这些是项目引入的 jar 包,但是看不出依赖冲突问题。
点击 Show Dependencies
,即可打开项目依赖树图。
- 蓝色线:正常依赖
- 红色虚线:同一个包被多次引用,编译可过
- 红色实线:依赖冲突,会导致编译出错
解决冲突
- 右键 红色实线 指向的 jar 包,右键选择
Exclude
,然后 idea 右下角就会弹出 提示你Import Changes
。 - 点击
Import Changes
,查看 pom.xml 文件,相关的 dependency 依赖已经多了 excluion 标签了,即去除该依赖的意思。
命令使用
输出依赖树
两种方式召唤出命令工具,并执行命令查看 maven 依赖树。
1、点击 idea 的 maven -> Execute Maven Goal,弹出 maven 命令提示列表,输入dependency:tree
2、Terminal 终端输入 mvn dependency:tree
enter. 即可看到这种格式的 jar 依赖树啦。
扩展
mvn dependency:tree
命令必须要在 pom.xml 同级目录下执行- 查看最全的传递依赖,加
-Dverbose
,如mvn dependency:tree -Dverbose
- 过滤依赖,加
-Dincludes=groupId[:artifactId][:version]
,如
mvn dependency:tree -Dverbose -Dincludes=org.springframework:spring-tx
- 保存依赖树,加
>xxx.txt
,如mvn dependency:tree -Dverbose>dependency.txt
- idea 中可通过使用
maven helper
插件便捷处理大量冲突,参考 idea 中解决maven 包冲突的问题(maven helper)
参考与感谢
http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html
https://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html