jarjar.jar 通过改包名来让新老版本jar包共存方案

2020-03-11  本文已影响0人  youposa

jarjar

介绍

有些项目还是那种很古老的开发方式,通过拷贝jar包的方式来运作,这种项目中大量代码依赖低版本的jar,而需要添加新版本jar 并且版本冲突的时候,可以用该jarjar来修改新版本的包名,使新老版本可以共存,互不影响。

安装教程

项目地址》https://gitee.com/booloose/jarjar 

该项目是克隆来的,这里补充做个介绍,感谢作者分享。

切换到该项目根目录下 ,通过maven命令 mvn clean package 直接打包 生成jarjar.jar,在target目录下。

使用说明

更换包名命令: java -jar jarjar.jar process

参数:

rulesFile 通过配置该文件来指定替换规则

inJar 替换的jar

outJar 输出的jar

rulesFile有三種指令,分別如下:

      1. rule用來取代Package的名称。            rule pattern result 这里主要用这个方式      2.zap用來移除符合名称的Package。          zap pattern      3.keep只会保留符合的Package的名称,其他的則會刪除。如果和zap一起使用,將會在zap执行完之后才執行。              keep pattern      备注: pattern為要比對的字串,可以使用「*」和「**」來表示任意的Package名稱。「*」可以代表一层的Package,「**」可以代表多层的Package。      result為要取代成的字串,可以使用「@1」、「@2」这类的符号表示要使用第几个pattern的「*」或「**」所代表的字串

举个例子:

场景如下 项目中已经有poi低版本3.7,但是想用SXSSFWorkbook导出大数据需要4.0版本,老版本依赖很多不能删。解决思路:把新版本4.0种的jar文件改个名字![输入图片说明](https://images.gitee.com/uploads/images/2020/0311/230019_6a3a4c69_5160858.png "屏幕截图.png")创建rulesFile 文件放到 jarjar.jar 相同的目录rulesFile文件内容如下:    rule org.apache.poi.** org.apache.poi4.@1命令行执行如下三条命令:java -jar jarjar.jar process rulesFile.txt poi-4.0.1.jar newpoi-4.0.1.jarjava -jar jarjar.jar process rulesFile.txt poi-ooxml-4.0.1.jar newpoi-ooxml-4.0.1.jarjava -jar jarjar.jar process rulesFile.txt poi-ooxml-schemas-4.0.1.jar newpoi-ooxml-schemas-4.0.1.jar文件夹下生成了3个jar包,拷贝到工程下引用即可。

希望能帮到你。

上一篇 下一篇

猜你喜欢

热点阅读