2 回答

TA貢獻1801條經驗 獲得超8個贊
maven3在解決依賴沖突采用就近原則,在就近原則不能做出判斷的情況下依據pom.xml的聲明的先后順序決定導入的jar。
jar包沖突多為傳遞性依賴的管理不當給項目帶來的麻煩解決思路羅列如下:
1、首先查看當前項目的jar關系如果使用eclipse、idea等編輯器可打開pom.xml文檔底部有Dependency Hierarchy可供查看jar的依賴情況。第二種使用maven插件的方式使用命令行:
mvn dependency:tree
結果中重要的是兩個部分,首先是Used undeclared dependencies意值項目中使用到的,但是沒有顯示聲明的依賴。這種依賴意味著潛在的風險。他是通過其他直接依賴導入的傳遞性依賴,當直接依賴升級時相關依賴的版本也會變化??赡軐е庐斍绊椖繄箦e,且不易察覺。另一個部分是Unused declared dependencies意指項目中未使用的,但顯式聲明的依賴。需要注意的是我們不應該直接刪除了事而是應該仔細分析。因為這個命令行發現不了執行測試和運行時需要的依賴。
以上方法都可可完整的查看當前項目的jar情況,個人更喜歡使用命令行。
2、通過以上方法我們可以看到項目中引用jar版本號;接下來就是如何排除掉我們不想要版本的jar;語法如下:
<dependency>
<groupId>.....</grooupId>
<artifactId>....</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<groupId>.....</groupId>
<artifactId>.....</artifactId>
</exclusion>
</exclesions>
<dependency>
<!--exclusions可包含一個或多個exclusion元素-->
3、一下規避jar沖突的思路,如果項目中有直接用到某個jar而這個jar已通過傳遞依賴的方式引入到maven項目里了。最好排除這個傳遞依賴在pom里面明確的聲明這個依賴。歸類依賴,不斷的優化依賴如,去除多余的依賴。

TA貢獻1876條經驗 獲得超6個贊
maven3在解決依賴沖突采用就近原則,在就近原則不能做出判斷的情況下依據pom.xml的聲明的先后順序決定導入的jar。
jar包沖突多為傳遞性依賴的管理不當給項目帶來的麻煩解決思路羅列如下:
1、首先查看當前項目的jar關系如果使用eclipse、idea等編輯器可打開pom.xml文檔底部有Dependency Hierarchy可供查看jar的依賴情況。第二種使用maven插件的方式使用命令行:
1 | mvn dependency:tree |
結果中重要的是兩個部分,首先是Used undeclared dependencies意值項目中使用到的,但是沒有顯示聲明的依賴。這種依賴意味著潛在的風險。他是通過其他直接依賴導入的傳遞性依賴,當直接依賴升級時相關依賴的版本也會變化??赡軐е庐斍绊椖繄箦e,且不易察覺。另一個部分是Unused declared dependencies意指項目中未使用的,但顯式聲明的依賴。需要注意的是我們不應該直接刪除了事而是應該仔細分析。因為這個命令行發現不了執行測試和運行時需要的依賴。
以上方法都可可完整的查看當前項目的jar情況,個人更喜歡使用命令行。
2、通過以上方法我們可以看到項目中引用jar版本號;接下來就是如何排除掉我們不想要版本的jar;語法如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <dependency> <groupId>.....</grooupId> <artifactId>....</artifactId> <version>...</version> <exclusions> <exclusion> <groupId>.....</groupId> <artifactId>.....</artifactId> </exclusion> </exclesions> <dependency> <!--exclusions可包含一個或多個exclusion元素--> |
3、一下規避jar沖突的思路,如果項目中有直接用到某個jar而這個jar已通過傳遞依賴的方式引入到maven項目里了。最好排除這個傳遞依賴在pom里面明確的聲明這個依賴。歸類依賴,不斷的優化依賴如,去除多余的依賴。
- 2 回答
- 0 關注
- 1433 瀏覽
添加回答
舉報