栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jar版本冲突问题解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jar版本冲突问题解决

背景

银行渠道对接过程中,有些渠道会依赖自己的加解密sdk或者算法进行数据加密传输,有些自带的sdk和底层依赖jar会存在版本冲突的情况(A银行SDK依赖0.0.1的jar a,B银行的jar版本依赖0.0.5的jar a),在不确定对应的银行有没有针对依赖jar做个性化开发和优化的前提下,由于maven的版本管理的原因,如果不进行版本区分的话,就会导致错误引入了低版本的jar,导致多渠道间无法共用,本文就是针对这种前提下做的一种折中方案处理。

处理方案

主要解决思路是:通过修改对应冲突jar的根包前缀与maven上的groupId、artifactId和version,以此来区分各自渠道依赖的jar

涉及工具
jarjar.jar
jd-gui.exe
处理步骤 1.新建目录,把jarjar.jar和需要调整的jar放入该目录:

2.新增rule.txt文件,文件内容为:
(原始根包名使用反编译工具jd-gui.exe打开查看)
rule 原始包名.** 目标包名.@1
如:rule org.bouncycastle.** dbs.org.bouncycastle.@1
3.使用cmd切换到当前目录下:

4.在cmd窗口下执行如下命令:
java -jar jarjar.jar process rule.txt 需要修改的.jar 修改后的.jar(修改后的jar名字自定义) 
如: java -jar jarjar.jar process rule.txt bcpg-jdk15on-1.64.jar test.bcpg-jdk15on-1.64.jar
5.生成的新test.bcpg-jdk15on-1.64.jar使用jd-gui.exe进行反编译发现,所有class文件的根包都改成了dbs.org.bouncycastle开头:


原始jar包根目录包名

目标jar包根目录包名

6.登录远程maven私服,然后使用上传功能,这样项目里就可以通过maven的方式进行管理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号