由于业务需要,引入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>
其余依赖(按需添加,可能已经存在,参考easyexcel原pom文件)
<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>3.4.0</version> </dependency>
转载地址:https://blog.csdn.net/u012399690/article/details/109511257
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-03-16 PackageOperation$StatusChangeListenerException: HAXM setup failed!