java库文件冲突的解决办法

版权声明:转载请邮件联系我([email protected]),以取得授权,谢谢! https://blog.csdn.net/yeshennet/article/details/84644952

前文 说到我最近要维护SDK的代码,然后最近有个问题,就是我们这边使用的一个库和我们的用户使用的这个库冲突了,两边都不好改,我研究了一下,要么我从头写一个,要么只能协调版本号,那么有没有其他简单快捷的方法呢?这就是本文的目的了!就是修改下我这边使用的库的包名就可以了。

资料与介绍

jarjar
github : https://github.com/shevek/jarjar
googlecode : https://code.google.com/archive/p/jarjar/
download

Jar Jar Links是一个实用程序,可以轻松地重新打包Java库并将它们嵌入到您自己的发行版中。 这有用有两个原因:

  • 您可以轻松地发送没有外部依赖项的单个jar文件。
  • 您可以避免库依赖于库的特定版本的问题,这可能与另一个库的依赖项冲突。

它是如何工作的?

Jar Jar Links包含一个扩展内置jar任务的Ant任务。 普通的zipfileset元素用于嵌入jar文件。 添加了一个新的规则元素,它使用通配符模式重命名嵌入的类文件。 字节码转换(通过ASM)用于更改对重命名类的引用,并为移动资源文件和转换字符串文字提供特殊处理。

使用方法

java -jar jarjar-1.4.jar process rules.txt google-collections-1.0.jar google-collections-old-1.0.jar

rules.txt

rule com.google.** com.googleold.@1

参考资料:

1,https://stackoverflow.com/questions/13746737/hand-edit-a-jar-to-change-package-names
2,https://github.com/shevek/jarjar

猜你喜欢

转载自blog.csdn.net/yeshennet/article/details/84644952