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