maven之如何查看依赖树

1:写在前面

在工作中,经常会有这样的场景,因为多个jar包间接引入了同一个jar包的多个不同版本,造成版本冲突,进而程序出现问题,此时就需要确定这些依赖到底是通过哪个jar被引入,而后通过配置exclude解决版本冲突问题,而定位的过程就需要依赖于查看maven的依赖树,接下来我们就一起看下吧!

2:查看依赖树

假设此时我们的pom如下:

<dependencies>
  <dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-webmvcartifactId>
    <version>5.0.6.RELEASEversion>
  dependency>
  
  <dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version>
    <scope>providedscope>
  dependency>
  <dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <version>1.18.6version>
  dependency>
dependencies>

引入的依赖如下图:
maven之如何查看依赖树_第1张图片
假设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.springframeworkgroupId>
  <artifactId>spring-webmvcartifactId>
  <version>5.0.6.RELEASEversion>
  <exclusions>
    <exclusion>
      <groupId>org.springframeworkgroupId>
      <artifactId>spring-beansartifactId>
    exclusion>
  exclusions>
dependency>

这样spring-beans的依赖就被剔除了。其实通过idea工具View->Tool Windows->Maven->Dependencies也是可以查看的,如下图:
maven之如何查看依赖树_第2张图片
并且哪些依赖因为重复被自动剔除了也会标记出来,后面提示omitted for dplicate的就是。

写在后面

参考文章列表:

maven项目查看依赖树

你可能感兴趣的:(maven,maven,依赖树,mvn,tree)