0x00 問題
最近在調試一個網上的項目,結果遇到兩個問題,特此記錄下解決過程。
問題:
- 某一個jar包有版本沖突
- 某一個類,居然在IntelliJ IDEA中運行調試時候找不到
0x01 解決途徑
某一個jar包有版本沖突
這個相對容易,就是使用 mvn dependency:tree -Dverbose -Dincludes=asm:asm
,然后根據輸出排查。
找到之后,就在pom.xml文件中把對應jar去掉,比如在org.unitils中去掉org.dbunit。
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-dbmaintainer</artifactId>
<version>${unitils.version}</version>
<exclusions>
<exclusion>
<artifactId>dbunit</artifactId>
<groupId>org.dbunit</groupId>
</exclusion>
</exclusions>
</dependency>
某一個類在IDEA調試時候不到
這個很詭異,因為看IDEA界面,這個jar事實上已經被加載了,但就是運行調試時候報錯找不到。
最后發現原來此項目設置了部分jar用provided
注釋掉,這表示 provided表明該包只在編譯和測試的時候用。
如果想要調試,還不希望修改pom文件,則需要在IntelliJ IDEA中做相關設置:
"Configuration" ---> “Use classpath of module”
需要勾選 Include dependencies with “Provided” scope。這樣調試時候可以用到,又不用修改pom文件