命令
1 | mvn -U dependency:tree -Dverbose |grep zkclient --color=auto -B 20 |
参数解释
-U
该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新
dependency:tree
查看依赖树
-Dverbose
可以打印出依赖树中详细的信息
|grep zkclient
grep通道:查看依赖树中名字包含zkclient的数据
–color=auto
标红查询到的内容,方便从树中进行排查
-B 20
以查询到的数据行为起点向上寻找20行,能找到哪一个节点引入该包
实际情况分析
1 | [INFO] +- org.apache.tomcat:tomcat-servlet-api:jar:7.0.70:compile |
看每一行末尾的参数,就是代表是否有冲突
:compile
成功编译,无冲突
:compile - omitted for duplicate
jar包被重复依赖,但是版本一致
:compile - omitted for conflict with XXX
比如上面有一行最后写着omitted for conflict with 1.8.3,那么该行的commons-beanutils:jar:1.8.0不会被引入,只有1.8.3版本的会被引入。
解决方案
<exclusions> 标签
1 | <dependency> |
例子中,引入了com.alibaba.dubbo, 排除guava和spring