omitted for duplicate jar包衝突排查

1.maven的命令

mvn dependency tree 

可以將當前所有的依賴關係都展示出來,包括來自不同處的依賴項。

mvn dependency:tree -Dverbose

Dincludes 可以進行參數過濾

mvn dependency:tree -Dverbose -Dincludes=*spring*:*spring*

參考文檔:https://www.jianshu.com/p/bbd5b0abcad1

2.idea工具

maven projects,idea更直觀的展示jar的依賴,以及將衝突的jar包omitted表示

3.java.lang.Class的屬性進行判斷

通過獲取Class的ProtectionDomain(給定代碼資源和權限的一種新的保護範圍),獲取codeSource

上述工具類來源於:https://blog.csdn.net/RobertoHuang/article/details/81778181

可以在報錯地方,調用上述工具類,查看類的具體來源jar包

4.阿里工具Arthas,可以直接線上排查jar衝突

具體的安裝參考官網:https://alibaba.github.io/arthas/en/install-detail.html

主要是classloader命令

classloader -l

classloader -t

用ClassLoader去查找resource    其中1be6f5c3爲LaunchedURLClassLoader的hash值

org.springframework.boot.loader.LaunchedURLClassLoader@1be6f5c3  12324        1be6f5c3

classloader -c 1be6f5c3  -r org/springframework/stereotype/Controller.class  

用ClassLoader去加載指定的類

classloader -c 1be6f5c3  --load com.sinochem.yunlian.truck.base.controller.BcAddressExcelController

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章