最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本) | 您所在的位置:网站首页 › 可执行jar文件 › 最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本) |
目录 问题描述:历史功能整改繁琐,新功能需要高版本依赖 解决办法:使用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 实验室设备网 版权所有 |