maven查看依赖树的方法实现

 更新时间:2023年08月23日 09:28:06   作者:一户董  
Maven依赖树是以当前项目的POM文件为根节点,列出了所有直接或间接依赖的依赖树结构,本文就详细的来介绍一下如何查看,感兴趣的可以了解一下

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查看依赖树的方法实现的文章就介绍到这了,更多相关maven查看依赖树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析git server“丢失”commit问题

    浅析git server“丢失”commit问题

    这篇文章主要介绍了git server“丢失”commit问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Eclipse转Itellij IDEA导入Git/svn本地项目的详细步骤

    Eclipse转Itellij IDEA导入Git/svn本地项目的详细步骤

    这篇文章主要介绍了Eclipse转Itellij IDEA导入Git/svn本地项目,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • SpringCloud Feign 服务调用的实现

    SpringCloud Feign 服务调用的实现

    Feign是一个声明性web服务客户端。本文记录多个服务之间使用Feign调用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • spring 和 spring boot 中的属性配置方式

    spring 和 spring boot 中的属性配置方式

    这篇文章主要介绍了spring 和 spring boot 中的属性配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解Java实现分治算法

    详解Java实现分治算法

    分治算法(divide and conquer)是五大常用算法(分治算法、动态规划算法、贪心算法、回溯法、分治界限法)之一,很多人在平时学习中可能只是知道分治算法,但是可能并没有系统的学习分治算法,本篇就带你较为全面的去认识和了解分治算法
    2021-06-06
  • java 定义长度为0的数组/空数组案例

    java 定义长度为0的数组/空数组案例

    这篇文章主要介绍了java 定义长度为0的数组/空数组案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 一文带你了解Java万物之基之Object类

    一文带你了解Java万物之基之Object类

    Java是一门天然的面向对象的语言。而所有我们手动创造出来的类,都继承于同一个类,即Object类。本文将通过示例为大家详细介绍一下Java中的Object类,需要的可以参考一下
    2022-03-03
  • Spring Boot中获取request的三种方式及请求过程

    Spring Boot中获取request的三种方式及请求过程

    这篇文章主要介绍了Spring Boot当中获取request的三种方式,包括请求过程流程分析及response常用API,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • ByteArrayOutputStream与InputStream互相转换方式

    ByteArrayOutputStream与InputStream互相转换方式

    这篇文章主要介绍了ByteArrayOutputStream与InputStream互相转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java中自定义泛型方法及其应用示例代码

    Java中自定义泛型方法及其应用示例代码

    泛型方法是Java中一个强大的特性,它允许我们在方法级别使用类型参数,提高代码的复用性和类型安全性,通过本文,读者可以学习如何定义和使用泛型方法,并了解其在处理集合、比较对象、创建实例等任务中的应用,感兴趣的朋友一起看看吧
    2025-02-02

最新评论