問題背景
實際開發過程中,如果用maven管理jar包,在pom文件中加入某個依賴時,可能會導入該包的許多子jar包。有時候這些jar包不需要,那么如何找到jar包之間的關系,又如何解耦jar包“子父”之間的關系呢?
問題描述
這幾天開發過程中,有3個與tomcat的jar包,由于公司私服上沒有對應版本的jar包,所以下載不了,導致報錯
經查找發現pom文件中并未直接引用tomcat的jar包,并且這3個jar包在工程里也沒有用。所以就考慮直接忽略這些jar包。
那么如何找到pom中,依賴包中依賴了tomcat的相關包呢?
IDEA自帶了maven依賴的工具:用IDEA打開項目,右上角--maven--選中自己的項目--點擊下圖框3的圖標(show Dependencies)。
點擊以后,顯示出整個項目的jar包依賴關系圖。點擊該圖片后,直接ctrl+f 搜索:tomcat,點擊相應的jar后,即可定位到相應的jar包。
比如點擊上圖中的tomcat-embed-core ,即可定位到如下圖的依賴關系:
雙擊選中的依賴關系,即可進入到該依賴的GAV坐標。
根據GAV坐標,往上滾動鼠標,可找到其上一級的GAV。
然后根據找到的artifactId,去工程的pom文件里找,即可定位,是哪個依賴引用了該tomcat的jar包。
如何解耦jar包“子父”之間的關系?
通過exclusions解決,即:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<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> |
總結
到此這篇關于IDEA中如何查找jar包之間的依賴關系并忽略依賴的某個包的文章就介紹到這了,更多相關IDEA查找jar包之間的依賴關系內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/liuzhongyefirst/article/details/107642958