项目场景:
项目场景: 在我们日常工作的时候,经常需要遇到 maven
的 包冲突的情况,这样我们就需要 利用 maven
指令去查看包的冲突的问题。
解决方案:
主要用到的指令为 mvn dependency:tree
,在 pom.xml
所在的目录下执行。
查看部分依赖
会查看到二级层级的依赖关系 (并不能看到所有的依赖关系):
mvn dependency:tree
-
idea
中双击Ctrl
,然后输入mvn dependency:tree
命令
-
输出结果(部分)
D:\kafka\springboot>mvn dependency:tree
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------< com.dhx:springboot >-------------------------
[INFO] Building springboot 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:3.2.0:tree (default-cli) @ springboot ---
[INFO] com.dhx:springboot:jar:0.0.1-SNAPSHOT
[INFO] +- junit:junit:jar:4.11:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:2.2:test
[INFO] | \- org.hamcrest:hamcrest:jar:2.2:test
[INFO] +- org.springframework:spring-core:jar:4.3.8.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.2:compile
[INFO] +- org.springframework:spring-beans:jar:4.3.8.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.3.8.RELEASE:compile
[INFO] | \- org.springframework:spring-context:jar:5.3.19:compile
[INFO] | \- org.springframework:spring-expression:jar:5.3.19:compile
[INFO] +- org.springframework:spring-aop:jar:4.3.8.RELEASE:compile
[INFO] +- org.springframework:spring-aspects:jar:4.3.8.RELEASE:compile
[INFO] | \- org.aspectj:aspectjweaver:jar:1.9.7:compile
[INFO] +- org.springframework:spring-jdbc:jar:4.3.8.RELEASE:compile
[INFO] | \- org.springframework:spring-tx:jar:5.3.19:compile
[INFO] +- org.springframework:spring-test:jar:4.3.8.RELEASE:provided
[INFO] +- mysql:mysql-connector-java:jar:6.0.6:compile
[INFO] +- org.apache.hive:hive-jdbc:jar:2.3.2:compile
[INFO] | +- org.apache.hive:hive-common:jar:2.3.2:compile
[INFO] | | +- org.apache.hive:hive-storage-api:jar:2.4.0:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] | | +- org.apache.orc:orc-core:jar:1.3.3:compile
[INFO] | | | \- io.airlift:aircompressor:jar:0.3:compile
[INFO] | | +- jline:jline:jar:2.12:compile
[INFO] | | +- org.eclipse.jetty.aggregate:jetty-all:jar:7.6.0.v20120127:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] | | | +- javax.mail:mail:jar:1.4.1:compile
注意:
- “
+-
”符号:表示该包后面还有其它依赖包。 - “
\-
”表示:该包后面不再依赖其它jar
包。
查看完整依赖
查看完整的依赖关系,需要增加参数 -Dverbose
,指令如下:
mvn dependency:tree -Dverbose
查看感兴趣的依赖部分
通常我们只对产生冲突的部分感兴趣,这个时候我们就要对信息进行提取:
需要增加以下参数
-Dincludes=*guava*
注意:
includes
支持通配符的形式
执行指令:
mvn dependency:tree -Dverbose -Dincludes=*guava*