proguaid混淆maven工程问题总结
1. 下载完代码之后,执行maven updateproject,否则打包有可能会有问题
2. 在日志中查看引入jar包的父jar,排除工程中与java环境的tools.jar包冲突,防止混淆报错:java.io.IOException: The same input jar [C:\Program Files\Java\jdk1.8.0_161\lib\tools.jar] is specified twice.
3. 加入proguard混淆配置之后,proguard混淆的时候会去找所有的第三方jar包路劲,并加入到classpath中,依赖的jar过多,导致加入classpath的jar路劲过长,超过了8191的长度,报错:Cannot run program "C:\Program Files\Java\jdk1.8.0_161\jre\bin\java.exe": CreateProcess error=206, 文件名或扩展名太长。
解决方案:
a. 使用较短的文件夹和文件的名称。
b. 减少文件夹树的深度。
c. 将文件存储在较少的文件夹,以便在 PATH 环境变量中需要较少的文件夹。
d. 调查可能的方法可以用来减少定位的.dll 文件的路径的依赖项。
建议把maven仓库地址的路劲变短,由之前的C:\Users\admin\.m2\repository改为D:\rpo
e. 如果还不行,去linux中执行,linux命令行没有字符长度限制
4. 需要混淆的工程打包的时候需要加入install命令,因为其他工程需要依赖已经混淆后的工程jar包
来源:oschina
链接:https://my.oschina.net/u/3323164/blog/2994267