maven中添加proguard来混淆代码

Posted energy1010

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.               
    35.         </plugin>  
  1. 2.在pom.xml平级目录下添加proguard.conf文件

 

  1. # ----------------------------------  
  2. #  通过指定数量的优化能执行  
  3. #  -optimizationpasses n  
  4. # ----------------------------------  
  5. -optimizationpasses 3  
  6.   
  7. # ----------------------------------  
  8. #   混淆时不会产生形形色色的类名   
  9. #   -dontusemixedcaseclassnames  
  10. # ----------------------------------  
  11. -dontusemixedcaseclassnames  
  12. # ----------------------------------  
  13. #      指定不去忽略非公共的库类  
  14. #  -dontskipnonpubliclibraryclasses  
  15. # ----------------------------------  
  16. #-dontskipnonpubliclibraryclasses  
  17.   
  18. # ----------------------------------  
  19. #       不预校验  
  20. #    -dontpreverify  
  21. # ----------------------------------  
  22. # -dontpreverify  
  23.   
  24. # ----------------------------------  
  25. #      输出生成信息  
  26. #       -verbose  
  27. # ----------------------------------  
  28. -verbose  
  29.   
  30. #混淆时应用侵入式重载   
  31. -overloadaggressively   
  32.    
  33. #优化时允许访问并修改有修饰符的类和类的成员   
  34. -allowaccessmodification  
  35. #确定统一的混淆类的成员名称来增加混淆   
  36. -useuniqueclassmembernames  
  37.   
  38.   
  39.   
  40. #这里添加你不需要混淆的类  
  41.   
  42. -keep  class com.zsoftware.common.cache.** {*;}   
  43. -keep  class com.zsoftware.common.constant.** {*;}   
  44. -keep  class com.zsoftware.common.dwr.** {*;}   
  45. -keep  class com.zsoftware.common.servelt.** {*;}   
  46. -keep  class com.zsoftware.common.util.** {*;}   
  47. -keep  class com.zsoftware.Component.** {*;}   
  48. -keep  class com.zsoftware.interfacepkg.** {*;}   
  49. -keep  class com.zsoftware.model.** {*;}   
  50. -keep  class com.zsoftware.view.** {*;}   
  51. -keep  class com.zsoftware.webResource.** {*;}   
  52.   
  53. -keep public class * extends  javax.servlet.Servlet  
  54.    
  55. -keepdirectories  **  
  56. -keepattributes **  
  57.    
  58.   
  59. #-keepnames class * implements java.io.Serializable  
  60. # ---------保护所有实体中的字段名称----------  
  61. -keepclassmembers class * implements java.io.Serializable {  
  62.     <fields>;  
  63. }  
  64.   
  65. # --------- 保护类中的所有方法名 ------------  
  66. -keepclassmembers class * {  
  67.     public <methods>;  

以上是关于maven中添加proguard来混淆代码的主要内容,如果未能解决你的问题,请参考以下文章

Maven WEB 项目使用ProGuard进行混淆,最佳解决方案

原创解决Maven ProGuard不混淆局部变量的问题,以及如何使用混淆好的包

Android Studio代码混淆添加

Android Studio代码混淆添加

如何用 proguard 混淆我的代码?

ProGuard 代码混淆