解決maven傳遞依賴中的版本衝突
阿新 • • 發佈:2018-12-20
如果用的是eclipse,那就用run as-build-在Goals那個框框裡輸入:project-info-reports:dependencies,如果實在dos環境下,就mvn project-info-reports:dependencies。然後就會在target的資料夾下,生成一個site資料夾,裡邊有個dependency.html,進去就能看到詳細的依賴的資訊。
或者直接在eclipse中開啟pom.xml檔案
會看到開啟的視窗中有一個dependency hie開頭的選項卡。
這個選擇卡頁面左半部分顯示了詳細的jar包依賴樹。右半部分則是maven將會下載的jar包。
比如我們看到右半部分有2個asm的jar,版本不同。
現在需要排除其中低版本的jar(比如xwork-core下的某個jar依賴的asm版本相對較低,不一定說是xwork-core依賴,而是它的依賴的依賴,即多重依賴的asm都是可以的)
<dependency>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
<version>${struts.version}</version>
<exclusions>
<exclusion>
<artifactId>asm</artifactId>
<groupId>asm</groupId>
</exclusion>
</exclusions>
</dependency>
當然我們也可以在dependency hie開頭的選項卡中右半部分直接選中那個低版本的asm.jar。然後右鍵exclude maven...點選確定會自動生成上面的。