[記錄點滴] 記錄一次用 IntelliJ IDEA遇到scope provided 的坑


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文件


免責聲明!

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



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