当前位置:网站首页>jar版本冲突问题解决
jar版本冲突问题解决
2022-06-26 09:34:00 【MiMing仔】
背景
银行渠道对接过程中,有些渠道会依赖自己的加解密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放入该目录:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-njyp1Pw8-1654159721627)(http://10.0.17.20/server/index.php?s=/api/attachment/visitFile/sign/a5f5f71e864ab18709d431f19e6c1c19)]](/img/f4/d48943d9cd47d649b42a27322f0fe8.png)
2.新增rule.txt文件,文件内容为:
(原始根包名使用反编译工具jd-gui.exe打开查看)
rule 原始包名.** 目标包名[email protected]
如:rule org.bouncycastle.** db[email protected]
3.使用cmd切换到当前目录下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qt5LO4YO-1654159721629)(http://10.0.17.20/server/index.php?s=/api/attachment/visitFile/sign/70629fc8a50b47db6b1b1257e61d348f)]](/img/0a/a8324d9bd1bca7b3dca1b5cac15dd7.png)
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开头:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FjfnSNFJ-1654159721631)(http://10.0.17.20/server/index.php?s=/api/attachment/visitFile/sign/3b75dcf58143aef479df5fcaedc1aaa7)] 目标jar包根目录包名](https://img-blog.csdnimg.cn/0cc1feea724e4bdfbff1fc75b69978e6.png)
原始jar包根目录包名
目标jar包根目录包名
6.登录远程maven私服,然后使用上传功能,这样项目里就可以通过maven的方式进行管理。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLhVRGuX-1654159721634)(http://10.0.17.20/server/index.php?s=/api/attachment/visitFile/sign/e444baa7fbd082ee4cd7cf86d208b566)]](/img/ad/55485491d632dd6c7f8acc38792955.png)
边栏推荐
- QPM performance monitoring components - General
- 2021年全国职业院校技能大赛(中职组)网络安全竞赛试题(2)详解
- 测试须知——常见接口协议解析
- 深度学习(初识tensorflow2.版本)之三好学生成绩问题(1)
- Druid data source for background monitoring
- SQL 函数
- install ompl. sh
- LeetCode 0710.黑名单中的随机数 - 预处理实现O(1)取值
- 我在中山,到哪里开户比较好?在线开户安全么?
- Industrial and enterprise patent matching data (hundreds of thousands of data) 1998-2014
猜你喜欢

Detailed explanation of the network security competition questions (2) of the 2021 national vocational college skills competition (secondary vocational group)

Redis notes (13) - scan and keys search for specific prefix key fields (command format, usage examples, locating large keys)

WGCLOUD的web ssh服务端口是多少

Redis master-slave replication in win10 system

调用api接口生成不同颜色的微信小程序二维码

online trajectory generation

mysql 数据库字段查询区分大小写设置

online trajectory generation

Summary of common commands of vim

The 100000 line transaction lock has opened your eyes.
随机推荐
Thinking before QPM preparation optimization
jz2440---使用uboot烧录程序
Testing practice - App testing considerations
Teach you to use shell script to check whether the server program is running
Optimization of power assisted performance of QPM suspended window
How to create an IE tab in edge browser
Redis notes (15) - Pipeline (the client packages and sends batch commands to save network overhead)
SQL function
Leetcode connected to rainwater series 42 (one dimension) 407 (2D)
mysql 数据库字段查询区分大小写设置
从tf 1.x到tf 2.6(遇到的就过来更新更新)
英语常用短语
Test instructions - common interface protocol analysis
install opencv-contrib-dev to use aruco code
cento7.7安装ELK简单记录
深度学习(初识tensorflow2.版本)之三好学生成绩问题(1)
c语言语法基础之——函数嵌套、递归 小程序斐波那契之和、阶乘
Daily-used English phrases
#云原生征文# 在 Google Kubernetes Cluster 上使用 HANA Expression Database Service
c语言语法基础之——指针(字符、一维数组) 学习