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