最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本) 您所在的位置:网站首页 可执行jar文件 最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本)

最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本)

2023-06-22 18:14| 来源: 网络整理| 查看: 265

目录

问题描述:历史功能整改繁琐,新功能需要高版本依赖

解决办法:使用maven-shade-plugin,将某个版本的依赖名称进行修改,重新引入即可

Step1.创建空的maven项目

Step2.Pom文件中引入需要修改名称的依赖

Step3.pom文件中添加maven-shade-plugin

Step4.执行mvn package 或 IDEA中双击Lifecycle中的package

Step5.从生成的target目录下找到新的jar包,引入到原项目中

Step6.对使用的方法重新引入时选择新包名的方法

问题描述:历史功能整改繁琐,新功能需要高版本依赖

公司的历史项目在导出功能上引用的是poi-3.12版本,后续再做word模板导出功能时用到了poi-3.15版本,升级完后发现项目的很多导出功能都瘫痪了。用旧版本,新功能无法使用;用新版本,旧功能瘫痪,且整改的工作量比较大。

解决办法:使用maven-shade-plugin,将某个版本的依赖名称进行修改,重新引入即可

整体流程

==》1.创建空的maven项目

==》2.pom文件中添加需要修改名称的依赖

==》3.pom文件中添加maven-shade-plugin

==》4.执行mvn package 或 IDEA中双击Lifecycle中的package

==》5.从生成的target目录下找到新的jar包,引入到原项目中

==》6.对使用的方法重新引入时选择新包名的方法

Step1.创建空的maven项目

(注意不是springboot项目,会自动引入很多不必要的依赖)

Step2.Pom文件中引入需要修改名称的依赖 org.apache.poi poi 3.15 org.apache.poi poi-ooxml 3.15 Step3.pom文件中添加maven-shade-plugin

        只需要调整改名前和改名后的包名即可,其他直接CV

maven-shade org.apache.maven.plugins maven-shade-plugin 3.2.4 package shade classworlds:classworlds junit:junit jmock:* *:xml-apis org.apache.maven:lib:tests log4j:log4j:jar: *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA true org.apache.poi shade.org.apache.poi Step4.执行mvn package 或 IDEA中双击Lifecycle中的package

Step5.从生成的target目录下找到新的jar包,引入到原项目中

Step6.对使用的方法重新引入时选择新包名的方法

        原项目代码不在本地,直接用了参考链接2的图,更清晰地说明

 PS:写这篇文章的时候,发现了一个实现word模板功能的神器,还没有试过,不过看起来很厉害的样子,先留存一下:Poi-tl Documentation (deepoove.com)

方案移植性功能性易用性

Poi-tl

Java跨平台

Word模板引擎,基于Apache POI,提供更友好的API

低代码,准备文档模板和数据即可

Apache POI

Java跨平台

Apache项目,封装了常见的文档操作,也可以操作底层XML结构

文档不全,这里有一个教程:Apache POI Word快速入门

Freemarker

XML跨平台

仅支持文本,很大的局限性

不推荐,XML结构的代码几乎无法维护

OpenOffice

部署OpenOffice,移植性较差

-

需要了解OpenOffice的API

HTML浏览器导出

依赖浏览器的实现,移植性较差

HTML不能很好的兼容Word的格式,样式糟糕

-

Jacob、winlib

Windows平台

-

复杂,完全不推荐使用

本文参考链接:

1.maven-shade-plugin解决Maven同一依赖多版本共存 - Lixin-Link - 博客园 (cnblogs.com)

2.解决项目版本冲突——maven-shade插件使用 - 掘金 (juejin.cn)

3.巧用maven-shade-plugin解决依赖冲突 - 简书 (jianshu.com)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有