1. 程式人生 > 其它 >通過修改包名解決引用easyExcel的poi版本衝突問題(轉載)

通過修改包名解決引用easyExcel的poi版本衝突問題(轉載)

由於業務需要,引入easyExcel。easyExcel最低依賴版本是3.17,系統中已經存在3.9版本,排除依賴有些類無法找到,導致jar包衝突無法共存。尋求解決方案時,實踐可通過修改jar包路徑達到目的。在此對過程做一下記錄。

資源下載:
jarjar下載地址
easyExcel倉庫

一、重新打包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