
問題
十年以前寫java項目總會干這么一個事情: 調包。 java項目往往依賴了很多第三方jar包,而這些jar包又有他自己依賴的第三方jar包,從而就能形成一個依賴樹。 而程序運行要把這些所有的依賴都加載到內存中的, 如果有一個第三方jar包被依賴了兩次或兩次以上, 而且版本還不一樣,就會依賴沖突,此時就需要調包, 調包就是調整依賴包。 調包其實是一個很繁瑣和頭疼的事情。
然后maven出現了,我第一次接觸maven就讓他的依賴管理吸引了,這讓程序員從調包這種苦力活中解脫出來了。雖然maven的依賴管理功能降低了我們的調包成本,但是發生依賴沖突時,還是需要人工參與的。這時我們就需要知道項目對第三方jar包的依賴情況。
解決
maven提供了一個命令mvn dependency:tree可以直接打印出依賴樹。
[INFO] com.qyf404:test-spring-boot:jar:1.0.0
[INFO] +- org.springframework.boot:spring-boot-starter:jar:1.5.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:1.5.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:4.3.9.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.4.RELEASE:compile
[INFO] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[INFO] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[INFO] | +- org.springframework:spring-core:jar:4.3.9.RELEASE:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.17:runtime
日期:2018-09-13 作者:辵鵵
