IDEA中如何查找Jar包之间的依赖关系并忽略依赖的某个包

问题背景

实际开发过程中,如果用maven管理jar包,在pom文件中加入某个依赖时,可能会导入该包的许多子jar包。有时候这些jar包不需要,那么如何找到jar包之间的关系,又如何解耦jar包“子父”之间的关系呢?

问题描述

这几天开发过程中,有3个与tomcat的jar包,由于公司私服上没有对应版本的jar包,所以下载不了,导致报错

76EC1290-FF5A-C9C3-6F09-AE8434A7B37F.png

经查找发现pom文件中并未直接引用tomcat的jar包,并且这3个jar包在工程里也没有用。所以就考虑直接忽略这些jar包。

那么如何找到pom中,依赖包中依赖了tomcat的相关包呢?

IDEA自带了maven依赖的工具:用IDEA打开项目,右上角--maven--选中自己的项目--点击下图框3的图标(show Dependencies)。

8713D5D4-5989-203B-B643-21DE22F12E69.png

点击以后,显示出整个项目的jar包依赖关系图。点击该图片后,直接ctrl+f 搜索:tomcat,点击相应的jar后,即可定位到相应的jar包。

BFFAB6DF-C590-19FD-0AED-268F4FD62F25.png

比如点击上图中的tomcat-embed-core,即可定位到如下图的依赖关系:

B46A04E0-AAA2-81C1-646E-BA2695342B44.png

双击选中的依赖关系,即可进入到该依赖的GAV坐标。

B8E90661-ACCB-88CE-8034-5D4842A44E53.png

根据GAV坐标,往上滚动鼠标,可找到其上一级的GAV。

212D522C-223A-09AB-1149-EE2FCAE0E447.png

然后根据找到的artifactId,去工程的pom文件里找,即可定位,是哪个依赖引用了该tomcat的jar包。

如何解耦jar包“子父”之间的关系?

通过exclusions解决,即:

4686FB0B-6EE9-A855-FF97-98B5CF2B4A69.png

<exclusions>
    <!-- 去掉springboot的tomcat配置 -->
    <exclusion>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-el</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-websocket</artifactId>
    </exclusion>
</exclusions>
收藏 (0)
评论列表
正在载入评论列表...
我是有底线的