使用JarJar重新包装工具

我已将Web应用程序部署到Google应用程序引擎,而我的Web服务使用了jersey 1.14框架。 当我尝试在GAE上使用或调用Web服务时,我得到了一个java.lang.IncompatibleClassChangeError:实现类。 我四处搜索并意识到jersey 1.14依赖于asm 3.1而google app引擎使用asm 4.0并意识到我必须使用JarJar打包依赖项来解决这个问题,但我不知道如何做到这一点与JarJar。 我发现的教程非常神秘,面向体验程序员。所以有人可以发布面向初学者的教程或者指导我完成解决这个问题的步骤。

嗯,这是很晚的答案,但如果有人穿越可能会有所帮助。 我将举一个例子并解释一下。 jarjar可用于重新打包java库。 它可用于更改名称空间,例如org.apache.common.codec需要更改为some_random_name.org.apache.common.codec。 从jarjar下载站点下载jarjar以后粘贴你要更改的jar文件(myinjar.jar)并将jarjar下载到一个文件夹中并运行此命令java -jar jarjar-1.4.jar process myrules.txt myinjar.jar myoutjar.jar in myrules .txt添加这些行

 rule org.apache.commons.codec.** some_random_name.org.apache.commons.codec.@1 

输出myoutjar.jar将保存到同一个文件夹中,您可以在项目中使用它而不会产生任何冲突

您可以使用jdk的jar命令来提取和合并jar文件。
jar -xvf firstjar.jar ….它将提取jar类文件夹/ p​​ackage wise -com / pak1 / pak2
现在同样提取第二个jar并合并两个扩展文件夹
不,你可以创建一个合并的类文件jar。
jar -cvf mergedjar.jar [folders name [ex com org …]] ,详细信息请查看jar命令的工作原理。