MAVEN项目打印依赖树,查看依赖最准确直观的方式

打印MAVEN依赖树能解决什么问题?

查看maven依赖的方式有很多种,比如通过pom.xml一层层查看,通过lib文件夹查看等,但我觉得如果是一个大型项目,涉及模块很多,依赖引用就会变的非常复杂,此时通过这种查看方式效率就会很低,还有个主要问题就是同一个jar包可能通过多个jar间接依赖进来,那确定到底是通过哪个jar依赖进来的就显得很重要,不然改半天发现不生效,还会导致别的问题,所以查看项目依赖树就很准确和直观,能够进行快速定位,并确认修改后是否生效。

怎么打印MAVEN依赖树?

通过mvn dependency:tree命令来打印依赖树

执行命令方式如下:

  • 通过pom.xml右键打开Open In Terminal:

  • 直接左下角termina打开

打开后在项目跟目录下执行maven打印依赖树命令:mvn dependency:tree >> D:/tree.txt

这里可以输出到一个文档中,也可以不输出直接打印到控制台

Tip:命令行方式执行一定要先添加MAVEN环境变量

添加MAVEN_HOME:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.2\plugins\maven\lib\maven3

追加Path:%MAVEN_HOME%\bin

添加后重启电脑,在命令行中执行mvn -v查看是否添加成功。

  • 通过Maven工具栏窗口Run Anything 窗口执行

输入mvn dependency:tree执行

打印后的依赖树是啥样的?

如下就是打印出来后的依赖树样式,其中主要有三个符号:

“|”    表示一个层级

“+-”  同一层级下,表示该包后面还有其他依赖包

“\-”   同一层级下,表示该包后面不再其他依赖包。即同一层依赖的最后一个节点。

假如我们需要寻找spring-aop这个jar包到底是通过哪个jar包间接引用进来的,如是我们搜索就能发现依赖关系如下:

那么如果我们此时不想使用spring-aop:jar的5.0.6这个版本,想使用其他的版本,那么我们就可以通过在pom.xml中找到这个spring-webmvc,剔除spring-aop这个依赖,再引用我们自己需要的依赖即可

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.6.RELEASE</version>
    <!-- 剔除不需要的jar -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- 重新添加需要的jar -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.0.14.RELEASE</version>
</dependency>

修改完成后,我们重新更新下依赖,再次打印依赖树查看依赖情况发现aop包已经换成了我们需要的版本对应的jar包了。

 

补充:

也可以查看指定jar包的依赖树

查看依赖树中包含某个groupId和artifactId的依赖链
mvn dependency:tree -Dincludes=com.alibaba:fastjson:

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值