Maven排包


https://www.cnblogs.com/ptqueen/p/7985198.html
 
進入到項目的pom文件所在目錄,運行:
mvn dependency:tree

INFO] +- com.cainiao.cnlearn:cnlearn-inner-facade:jar:1.0.19-SNAPSHOT:compile
[INFO] | +- com.google.guava:guava:jar:23.5-jre:compile
[INFO] | | +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] | | +- org.checkerframework:checker-qual:jar:2.0.0:compile
[INFO] | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
[INFO] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO] | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.7:compile
[INFO] | +- org.apache.commons:commons-collections4:jar:4.1:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | +- commons-codec:commons-codec:jar:1.11:compile
[INFO] | +- com.cainiao.lcp:lcp-common:jar:1.0.0:compile
[INFO] | \- com.alibaba:fastjson:jar:1.2.50:compile

比如要查詢fastjson的依賴:

\- com.alibaba:fastjson:jar:1.2.50:compile

分別為直接依賴包和子依賴
列出的這一行內容分別為:
GroupID : ArtifactId:Version:以及classPath
 
另外一種很直觀的排包方式:

對應示例:

mvn dependency:tree -Dverbose -Dincludes=com.alibaba:fastjson

 

 解決沖突的辦法:

共有四種解決方式:
1、第一聲明優先原則:
在pom.xml配置文件中,如果有兩個名稱相同版本不同的依賴聲明,那么先寫的會生效。
所以,先聲明自己要用的版本的jar包即可。
2、路徑近者優先:
直接依賴優先於傳遞依賴,如果傳遞依賴的jar包版本沖突了,那么可以自己聲明一個指定版本的依賴jar,即可解決沖突。
3、排出原則:
傳遞依賴沖突時,可以在不需要的jar的傳遞依賴中聲明排除,從而解決沖突。
4、版本鎖定原則(最常使用)
在配置文件pom.xml中先聲明要使用哪個版本的相應jar包,聲明后其他版本的jar包一律不依賴。解決了依賴沖突。


免責聲明!

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



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