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包,拷贝到工程下引用即可。
希望能帮到你。
网友评论