当前位置: 首页 > news >正文

一个maven项目中直接引入两个版本的jar包

一个maven项目中直接引入两个版本的jar包

问题来源

需要使用老版本的poi,目前系统是新版本的poi。
不想启动新的服务。想要特定方法用老版本poi

解决方式

  1. 创建了一个 Maven 子模块
  2. 该模块引入了 poi-3.9 的依赖,老版本的poi
  3. 把这个模块打包成一个独立的 jar,并且里面的 org.apache.poi 被重命名为 com.shaded.poi.v39.org.apache.poi

具体代码

第一步:配置 maven-shade-plugin 插件

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.5.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><!-- 重命名 org.apache.poi 到 com.shaded.poi.v39.org.apache.poi --><relocations><relocation><pattern>org.apache.poi</pattern><shadedPattern>com.shaded.poi.v39.org.apache.poi</shadedPattern></relocation></relocations><!-- 只打包指定的依赖 --><artifactSet><includes><include>org.apache.poi:poi</include><include>org.apache.poi:poi-ooxml</include><include>org.apache.poi:poi-scratchpad</include></includes></artifactSet><!-- 输出文件名自定义 --><outputFile>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</outputFile></configuration></execution></executions></plugin></plugins>
</build>

第二步:执行构建命令生成 shaded jar

mvn clean package

构建完成后,你会在 target/ 目录下看到类似这样的文件:

your-module-name-1.0.0-shaded.jar

所有 org.apache.poi 开头的类都被重命名为 com.shaded.poi.v39.org.apache.poi
它包含了 poi-3.9、poi-ooxml-3.9、poi-scratchpad-3.9 的全部类
和主项目的 poi 高版本完全隔离,不会冲突

第三步,引入到新项目

直接放入 lib 并手动添加依赖(IDE 配置)

之后可以正常调用

相关文章:

  • 15.5 【TS基础项目】构建随机密码生成器
  • IO Vs NIO
  • 数据集分享 | 塑料类型检测
  • 《P2324 [SCOI2005] 骑士精神》
  • PhysUnits】15.2 引入P1后的减一特质(sub1.rs)
  • 大模型深度学习之双塔模型
  • python 中的接口、类 、抽象类、使用场景和用法示例
  • 捋捋wireshark
  • The 2020 ICPC Asia Yinchuan Regional Programming Contest
  • Maven-生命周期
  • 排序算法-归并排序与快速排序
  • 如何避免客户频繁更换对接人
  • ASP.NET MVC添加视图示例
  • [C]基础17.自定义类型:结构体
  • MMdetection推理保存图片和预测标签脚本
  • API网关和API管理的区别
  • C++模板类深度解析与气象领域应用指南
  • 【计算机网络】第2章:应用层—应用层协议原理
  • 机器学习-线性回归基础
  • Emacs 折腾日记(二十六)——buffer与窗口管理
  • 天津网站建设哪家有/泰州seo外包公司
  • 深圳网站建设hi0755/比百度好用的搜索引擎
  • 网站文件上传完成后打开网站显示网站建设中怎么回事?/百度官网首页官网
  • app与移动网站开发资料/站长统计app软件下载官网
  • 免费建手机网站/网站网络优化外包
  • 免费购物网站/搜易网服务介绍