本文主要是自己在使用Proguard过程中遇到的一些问题的总结。此工具是目前用的比较广泛的,而且可以支持到JDK8。

在这里我主要是介绍实际操作过程中遇到的问题,基本用法网上很多我就不多说了。

一、ProGuard基本用法

     基本用法网上非常多,按照步骤来就行。我参考的帖子是:

     http://blog.csdn.net/zhangdaiscott/article/details/45368261

二、主要问题与解决

1、默认的混淆名称是a、b、c这样的简短字符,可以修改为自定义混淆名称

ProGuard工具使用介绍

  官网上对类和属性、方法提供了两个属性:  -obfuscationdictionary 和-classobfuscationdictionary

Step1: 自定义个混淆字典,keywords.txt 和 mycfg3.pro放在同一目录下

ProGuard工具使用介绍

Step2: mycfg3.pro中配置该属性,该事例中只配了-obfuscationdictionary

ProGuard工具使用介绍

Step3: 将mycfg3.pro导入到 ProGuardgui 控制台,看到如下效果:

ProGuard工具使用介绍

注意:如果直接这样进行混淆时会报“系统找不到指定路径”错误。问题就出现在这里了D:\0310\demo\keywords.txt。

 查阅源码后发现这个地方后台直接用 new URL(),所以要手动改成file:///D:/0310/demo/keywords.txt”才能成功。


2、对JAVA泛型的支持,需要如下配置:

ProGuard工具使用介绍


3、对Spring注解的支持,需要完成以下两步:

    Step1: 配置文件增加:

ProGuard工具使用介绍

 Step2: 将混淆后的 demo.jar,解压后用jar命令重新打个jar

           这是我用的:jar cf demo.jar *

3、需要过滤掉告警命令:在mycfg.pro中添加以下命令

     -dontwarn org.springframework.**
    -keep class org.springframework.** {*;}

ProGuard官方提供的操作手册很好,一定要参考,在软件根目录下也有 proguard6.0\docs


以上是我遇到的一些问题,希望对大家有帮助。







相关文章: