Maven間接依賴沖突解決辦法


如果項目中maven依賴太多,由於還有jar之間的間接依賴,所以可能會存在依賴沖突。依賴沖突大部分都是由於版本沖突引起的,查看maven的依賴關系,可以找到引起沖突的間接依賴

 

如上圖,通過Dependency Hierachy可以查看到間接依賴,這里slf4j-api與其他引用的版本有沖突,我們可以exclude禁用這個間接依賴,代碼如下:

 1 <dependency>
 2     <groupId>displaytag</groupId>
 3     <artifactId>displaytag</artifactId>
 4     <version>1.2</version>
 5     <exclusions>
 6         <exclusion>
 7             <groupId>org.slf4j</groupId>
 8             <artifactId>jcl104-over-slf4j</artifactId>
 9         </exclusion>
10         <exclusion>
11             <groupId>org.slf4j</groupId>
12             <artifactId>slf4j-log4j12</artifactId>
13         </exclusion>
14     </exclusions>
15 </dependency>

這里禁用了displaytag間接引用的兩個依賴,被禁用的依賴如果沒有被其他依賴引用,可以手動引入。

這樣就解決了maven依賴沖突的問題。

 

PS: 對於有的依賴,簡單的通過groupId artifactId和version無法從maven中央倉庫下載,由於這些jar依賴不同的jdk,所以要加上classifier,如下:

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM