maven exclusion 解決maven傳遞依賴中的版本沖突


 傳遞依賴是maven最有特色的、最為方便的優點之一,可以省了很多配置。如a 依賴 b,b 依賴c 默認 a也會依賴 c。但是也會帶來隱患,如版本沖突。當然maven也考慮到解決辦法,可以使用exclusions來排除相應的重復依賴。 


但是我們還會遇到一個嚴重的問題,那就是,我怎么知道是哪個包的傳遞依賴產生的沖突 ?那該怎么辦呢?當然,maven也會有相應的解決方案。 

首先,你要在pom.xml中加上maven-project-info-reports-plugin插件。 

<reporting> 
<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId> 
maven-project-info-reports-plugin 
</artifactId> 
</plugin> 
</reporting> 

然后再執行:mvn project-info-reports:dependencies 。生成項目依賴的報表,這樣你就能夠在報表中找出你版本沖突的相關性依賴了。如出現OutOfMemoryError錯誤,在系統環境中加入參數 MAVEN_OPTS=-Xmx512m 

最后在相應的dependency中加上exclusions來排除相關的傳遞依賴。 

例: 

<dependency> 
<groupId>jaxen</groupId> 
<artifactId>jaxen</artifactId> 
<version>1.1.1</version> 
<exclusions> 
<exclusion> 
<groupId>com.ibm.icu</groupId> 
<artifactId>icu4j</artifactId> 
</exclusion> 
</exclusions> 
<scope>runtime</scope> 
</dependency>


免責聲明!

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



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