maven查看依赖树的方法实现
1:写在前面
在工作中,经常会有这样的场景,因为多个jar包间接引入了同一个jar包的多个不同版本,造成版本冲突,进而程序出现问题,此时就需要确定这些依赖到底是通过哪个jar被引入,而后通过配置exclude解决版本冲突问题,而定位的过程就需要依赖于查看maven的依赖树,接下来我们就一起看下吧!
2:查看依赖树
假设此时我们的pom如下:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
</dependencies>引入的依赖如下图:

假设 spring-beans:5.0.6 是我们希望剔除的依赖,此时就可以这么做,执行命令 mvn dependency:tree :
xbdeMacBook-Air:test-idea-mvc xb$ mvn dependency:tree
[INFO] Scanning for projects...
......
[INFO] org.example:test-idea-mvc:war:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-webmvc:jar:5.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:5.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:5.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:5.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:5.0.6.RELEASE:compile
[INFO] | | \- org.springframework:spring-jcl:jar:5.0.6.RELEASE:compile
[INFO] | +- org.springframework:spring-expression:jar:5.0.6.RELEASE:compile
[INFO] | \- org.springframework:spring-web:jar:5.0.6.RELEASE:compile
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] \- org.projectlombok:lombok:jar:1.18.6:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.689 s
[INFO] Finished at: 2021-12-13T21:15:13+08:00
[INFO] ------------------------------------------------------------------------
可以看到是通过依赖 org.springframework:spring-webmvc:jar:5.0.6.RELEASE:compile 引入进来的,那么我们就可以修改pom如下来剔除spring-beans的依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.6.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>这样spring-beans的依赖就被剔除了。其实通过idea工具View->Tool Windows->Maven->Dependencies也是可以查看的,如下图:

并且哪些依赖因为重复被自动剔除了也会标记出来,后面提示omitted for dplicate的就是。
写在后面
参考文章列表:
到此这篇关于maven查看依赖树的方法实现的文章就介绍到这了,更多相关maven查看依赖树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用springboot的jar包能够以service方式启动
这篇文章主要介绍了使用springboot的jar包能够以service方式启动,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10
使用Spring Security OAuth2实现单点登录
在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现SSO - 单点登录。感兴趣的朋友跟随小编一起看看吧2019-06-06
Thread类interrupt interrupted及isInterrupted区别
这篇文章主要为大家介绍了Thread类interrupt interrupted及isInterrupted区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10


最新评论