idea 使用Maven Helper idea的解決方法
1、何為依賴沖突
Maven是個(gè)很好用的依賴管理工具,但是再好的東西也不是完美的。Maven的依賴機(jī)制會(huì)導(dǎo)致Jar包的沖突。舉個(gè)例子,現(xiàn)在你的項(xiàng)目中,使用了兩個(gè)Jar包,分別是A和B。現(xiàn)在A需要依賴另一個(gè)Jar包C,B也需要依賴C。但是A依賴的C的版本是1.0,B依賴的C的版本是2.0。這時(shí)候,Maven會(huì)將這1.0的C和2.0的C都下載到你的項(xiàng)目中,這樣你的項(xiàng)目中就存在了不同版本的C,這時(shí)Maven會(huì)依據(jù)依賴路徑最短優(yōu)先原則,來(lái)決定使用哪個(gè)版本的Jar包,而另一個(gè)無(wú)用的Jar包則未被使用,這就是所謂的依賴沖突。
在大多數(shù)時(shí)候,依賴沖突可能并不會(huì)對(duì)系統(tǒng)造成什么異常,因?yàn)镸aven始終選擇了一個(gè)Jar包來(lái)使用。但是,不排除在某些特定條件下,會(huì)出現(xiàn)類似找不到類的異常,所以,只要存在依賴沖突,在我看來(lái),最好還是解決掉,不要給系統(tǒng)留下隱患。
2、解決方法
解決依賴沖突的方法,就是使用Maven提供的<exclusion>標(biāo)簽,<exclusion>標(biāo)簽需要放在<exclusions>標(biāo)簽內(nèi)部,就像下面這樣:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.10.0</version>
<exclusions>
<exclusion>
<artifactId>log4j-api</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
</exclusions>
</dependency>log4j-core本身是依賴了log4j-api的,但是因?yàn)橐恍┢渌哪K也依賴了log4j-api,并且兩個(gè)log4j-api版本不同,所以我們使用<exclusion>標(biāo)簽排除掉log4j-core所依賴的log4j-api,這樣Maven就不會(huì)下載log4j-core所依賴的log4j-api了,也就保證了我們的項(xiàng)目中只有一個(gè)版本的log4j-api。
3、Maven Helper
看到這里,你可能會(huì)有一個(gè)疑問(wèn)。如何才能知道自己的項(xiàng)目中哪些依賴的Jar包沖突了呢?Maven Helper這個(gè)InteliJ IDEA的插件幫我們解決了這個(gè)問(wèn)題。插件的安裝方法我就不講了,既然你都會(huì)Maven了,我相信你也是會(huì)安裝插件的。
在插件安裝好之后,我們打開(kāi)pom.xml文件,在底部會(huì)多出一個(gè)Dependency Analyzer選項(xiàng)

點(diǎn)開(kāi)這個(gè)選項(xiàng)

找到?jīng)_突,點(diǎn)擊右鍵,然后選擇Exclude即可排除沖突版本的Jar包。
到此這篇關(guān)于idea 使用Maven Helper idea的解決方法的文章就介紹到這了,更多相關(guān)idea 使用Maven Helper idea內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA實(shí)現(xiàn)Token自動(dòng)續(xù)期機(jī)制的示例代碼
本文主要介紹了JAVA實(shí)現(xiàn)Token自動(dòng)續(xù)期機(jī)制的示例代碼,通過(guò)動(dòng)態(tài)調(diào)整會(huì)話生命周期平衡安全性與用戶體驗(yàn),解決固定有效期Token帶來(lái)的風(fēng)險(xiǎn)與不便,感興趣的可以了解一下2025-09-09
Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng)
在開(kāi)發(fā)?Java?項(xiàng)目時(shí),管理和協(xié)調(diào)依賴項(xiàng)的版本號(hào)是一項(xiàng)重要而繁瑣的任務(wù),本文主要介紹了Maven中dependencyManagement管理項(xiàng)目依賴項(xiàng),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Java防止文件被篡改之文件校驗(yàn)功能的實(shí)例代碼
這篇文章主要介紹了Java防止文件被篡改之文件校驗(yàn)功能,本文給大家分享了文件校驗(yàn)和原理及具體實(shí)現(xiàn)思路,需要的朋友可以參考下2018-11-11
使用@JsonFormat和@DateTimeFormat對(duì)Date格式化操作
這篇文章主要介紹了使用@JsonFormat和@DateTimeFormat對(duì)Date格式化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
簡(jiǎn)單了解Java刪除字符replaceFirst原理及實(shí)例
這篇文章主要介紹了簡(jiǎn)單了解Java刪除字符replaceFirst原理及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
SpringBoot整合MongoDB完成增刪改查分頁(yè)查詢方式
本文介紹了如何在SpringBoot中整合MongoDB,包括依賴導(dǎo)入、連接配置、實(shí)體類創(chuàng)建、增刪改查、分頁(yè)查詢、時(shí)間范圍查詢以及基本操作的調(diào)試2025-11-11
myeclipse中使用maven前常見(jiàn)錯(cuò)誤及解決辦法
這篇文章主要介紹了myeclipse中使用maven前常見(jiàn)錯(cuò)誤及解決辦法 的相關(guān)資料,需要的朋友可以參考下2016-05-05
Springboot?內(nèi)部服務(wù)調(diào)用方式
這篇文章主要介紹了Springboot?內(nèi)部服務(wù)調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03

