如何解決多版本jar包沖突問題
解決多版本jar包沖突問題
在和三方對接的過程中,我們可能會不斷引入一些三方j(luò)ar包
但這個時候就有可能出現(xiàn)一個項目需要依賴兩個版本不同且功能不兼容的jar包,本文記錄一種方法解決方法
修改jar全限定名
我們知道jvm加載類是通過判斷類的全限定名來判斷當前類是否被加載
這個導(dǎo)致多版本jar包不兼容的原因,那么我們就從里下手
例子
我們需要將 bcprov-jdk15on-1.65.jar 由原本的org.bouncycastle 替換為shade.bouncycastle
1、準備兩個文件
- jarjar.jar
<!--自行把jar下載下來-->
<dependency>
<groupId>com.googlecode.jarjar</groupId>
<artifactId>jarjar</artifactId>
<version>1.3</version>
</dependency>
- rule.txt
rule org.bouncycastle.** shade.bouncycastle.@1
2、放到一個文件下(聯(lián)同要修改的jar包)

4、運行jarjar
java -jar jarjar-1.3.jar process rule.txt bcprov-jdk15on-1.65.jar shade-bcprov-jdk15on-1.65.jar
5、大公告成

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應(yīng)為?52.0
這篇文章主要給大家介紹了關(guān)于解決Springboot啟動報錯:類文件具有錯誤的版本?61.0,應(yīng)為?52.0的相關(guān)資料,這是查閱了網(wǎng)上的很多資料才解決的,分享給大家,需要的朋友可以參考下2023-01-01
關(guān)于IDEA的junit單元測試Scanner輸入不可用的問題(多種原因分析)
IDEA在Junit測試中使用了Scanner,但是控制臺一直轉(zhuǎn)圈,無法輸入,eclipse默認可用,其實解決方法很多,今天小編給大家分享多種問題原因分析及解決方法,感興趣的朋友一起看看吧2021-06-06
Mybatis-plus解決兼容oracle批量插入的示例詳解
Mybatis-Plus 是一個 MyBatis 的增強工具,提供無侵入、損耗小的 CRUD 操作,本文給大家介紹了Mybatis-plus解決兼容oracle批量插入,文中通過大家介紹的非常詳細,需要的朋友可以參考下2024-11-11
詳解Java如何使用集合來實現(xiàn)一個客戶信息管理系統(tǒng)
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java 集合實現(xiàn)一個客戶信息管理系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
Mybatis返回單個實體或者返回List的實現(xiàn)
這篇文章主要介紹了Mybatis返回單個實體或者返回List的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07

