通過修改包名解決引用easyExcel的poi版本衝突問題(轉載)
阿新 • • 發佈:2022-03-16
由於業務需要,引入easyExcel。easyExcel最低依賴版本是3.17,系統中已經存在3.9版本,排除依賴有些類無法找到,導致jar包衝突無法共存。尋求解決方案時,實踐可通過修改jar包路徑達到目的。在此對過程做一下記錄。
一、重新打包poi
1.準備好需要的資源
2.建立rule.txt
3.rule.txt中寫入文字
rule org.apache.poi.** com.customize.poi.@1
3.驗證能否修改包名
3.17可以忽略,實踐通過,詳細用法可自行研究
java -jar jarjar-1.3.jar strings poi-3.17.jar
4.重新打包
自行修改規則
java -jar jarjar-1.3.jar process rule.txt poi-3.17.jar customize-poi-3.17.jar java -jar jarjar-1.3.jar process rule.txt poi-ooxml-3.17.jar customize-poi-ooxml-3.17.jar java -jar jarjar-1.3.jar process rule.txt poi-ooxml-schemas-3.17.jar customize-poi-schemas-3.17.jar
生成新的jar包
5.打包到本地倉庫
mvn install:install-file -Dfile=customize-poi-3.17.jar -DgroupId=com.customize -DartifactId=poi -Dversion=3.17 -Dpackaging=jar mvn install:install-file -Dfile=customize-poi-ooxml-3.17.jar -DgroupId=com.customize -DartifactId=poi-ooxml -Dversion=3.17 -Dpackaging=jar mvn install:install-file -Dfile=customize-poi-schemas-3.17.jar -DgroupId=com.customize -DartifactId=poi-ooxml-schemas -Dversion=3.17 -Dpackaging=jar
打包後
二、重新編譯easyExcel
1.下載easyExcel原始碼
注意easyExcel版本,匯入IDE(筆者使用IDEA)
或者
git clone https://github.com/alibaba/easyexcel.git git checkout -b dev2.2.6 v2.2.6
2.修改pom檔案中poi依賴
<dependency> <groupId>com.customize</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>com.customize</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>com.customize</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.17</version> </dependency>
修改專案座標
<groupId>com.customize</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> <packaging>jar</packaging> <name>easyexcel</name>
3.全域性替換import
4.編譯
mvn clean install -Dmaven.test.skip=true
編譯失敗
加入依賴
<dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>2.3.0</version> </dependency>
重新編譯
三.使用
1.專案中新增依賴
此時easyExcel依賴為修改後的,可傳至私服/安裝到本地倉庫
<dependency> <groupId>com.customize</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency>
依賴的pom
<dependency> <groupId>com.customize</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>com.customize</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>com.customize</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.17</version> </dependency>
轉載地址:https://blog.csdn.net/u012399690/article/details/109511257