maven中添加proguard来混淆代码

只要下回插件并添加相应的配置文件即可。本文仅是做下相关记录

1.修改pom.xml添加插件

    1. <plugin>
    2. <groupId>com.pyx4me</groupId>
    3. <artifactId>proguard-maven-plugin</artifactId>
    4. <executions>
    5. <execution>
    6. <phase>package</phase>
    7. <goals>
    8. <goal>proguard</goal>
    9. </goals>
    10. </execution>
    11. </executions>
    12. <configuration>
    13. <obfuscate>true</obfuscate>
    14. <proguardInclude>${basedir}/proguard.conf</proguardInclude>
    15. <!-- 添加依赖,这里你可以按你的需要修改 -->
    16. <libs>
    17. <lib>${java.home}/lib/rt.jar</lib>
    18. <lib>lib/fcexporter_jdk1.5.jar</lib>
    19. <lib>lib/fcexporthandler.jar</lib>
    20. <lib>lib/jsp-api.jar</lib>
    21. <lib>lib/servlet-api.jar</lib>
    22. </libs>
    23. <addMavenDescriptor>false</addMavenDescriptor>
    24. </configuration>
    25. <dependencies>
    26. <!-- 使用4.8版本来混淆 -->
    27. <dependency>
    28. <groupId>net.sf.proguard</groupId>
    29. <artifactId>proguard</artifactId>
    30. <version>4.8</version>
    31. <scope>runtime</scope>
    32. </dependency>
    33. </dependencies>
    34. </plugin>
  1. 2.在pom.xml平级目录下添加proguard.conf文件
  1. # ----------------------------------
  2. #  通过指定数量的优化能执行
  3. #  -optimizationpasses n
  4. # ----------------------------------
  5. -optimizationpasses 3
  6. # ----------------------------------
  7. #   混淆时不会产生形形色色的类名
  8. #   -dontusemixedcaseclassnames
  9. # ----------------------------------
  10. -dontusemixedcaseclassnames
  11. # ----------------------------------
  12. #      指定不去忽略非公共的库类
  13. #  -dontskipnonpubliclibraryclasses
  14. # ----------------------------------
  15. #-dontskipnonpubliclibraryclasses
  16. # ----------------------------------
  17. #       不预校验
  18. #    -dontpreverify
  19. # ----------------------------------
  20. # -dontpreverify
  21. # ----------------------------------
  22. #      输出生成信息
  23. #       -verbose
  24. # ----------------------------------
  25. -verbose
  26. #混淆时应用侵入式重载
  27. -overloadaggressively
  28. #优化时允许访问并修改有修饰符的类和类的成员
  29. -allowaccessmodification
  30. #确定统一的混淆类的成员名称来增加混淆
  31. -useuniqueclassmembernames
  32. #这里添加你不需要混淆的类
  33. -keep  class com.zsoftware.common.cache.** {*;}
  34. -keep  class com.zsoftware.common.constant.** {*;}
  35. -keep  class com.zsoftware.common.dwr.** {*;}
  36. -keep  class com.zsoftware.common.servelt.** {*;}
  37. -keep  class com.zsoftware.common.util.** {*;}
  38. -keep  class com.zsoftware.Component.** {*;}
  39. -keep  class com.zsoftware.interfacepkg.** {*;}
  40. -keep  class com.zsoftware.model.** {*;}
  41. -keep  class com.zsoftware.view.** {*;}
  42. -keep  class com.zsoftware.webResource.** {*;}
  43. -keep public class * extends  javax.servlet.Servlet
  44. -keepdirectories  **
  45. -keepattributes **
  46. #-keepnames class * implements java.io.Serializable
  47. # ---------保护所有实体中的字段名称----------
  48. -keepclassmembers class * implements java.io.Serializable {
  49. <fields>;
  50. }
  51. # --------- 保护类中的所有方法名 ------------
  52. -keepclassmembers class * {
  53. public <methods>;
  54. }
上一篇:如何在maven中添加本地jar包


下一篇:hdu1166(线段树单点更新&区间求和模板)