## -keep {Modifier} {class_specification} 防止类和成员被移除或者被重命名 ## -keepclassmembers {modifier} {class_specification} 防止成员被移除或者被重命名 ## -keepclasseswithmembers {class_specification} 防止拥有该成员的类和成员被移除或者被重命名 ## -keepnames {class_specification} 防止成员被重命名 ## -keepclasseswithmembernames {class_specification} 防止拥有该成员的类和成员被重命名 ## -keepclasseswithmembers ## -basedirectory directoryname 在配置文件中出现的相对路径均是相对于该路径 # # ## 忽略所有警告,否则有警告的时候混淆会停止 #-ignorewarnings # ## JDK目标版本1.8 #-target 1.8 # ## 不做收缩(删除注释、未被引用代码) #-dontshrink # ## 不做优化(变更代码实现逻辑) #-dontoptimize # ## 不路过非公用类文件及成员 #-dontskipnonpubliclibraryclasses #-dontskipnonpubliclibraryclassmembers # ## 优化时允许访问并修改有修饰符的类和类的成员 #-allowaccessmodification # ## 确定统一的混淆类的成员名称来增加混淆 #-useuniqueclassmembernames # ## 不混淆所有包名,本人测试混淆后WEB项目问题实在太多,毕竟Spring配置中有大量固定写法的包名 #-keeppackagenames # ## 不混淆局部变量名 #-keepparameternames # ## 不混淆所有特殊的类 LocalVariable*Table, #-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,Synthetic,EnclosingMethod # ## 不混淆包下的所有类名 #-keep class weg.base.** { ; } #-keep class weg.service.** { ; } #-keep class weg.dao.** { ; } #-keep class weg.util.** { ; } # ## 不混淆quartz包下的所有类名,且类中的方法也不混淆 #-keep class weg.quartz.** { ; } # ## 不混淆model包中的所有类以及类的属性及方法,实体包,混淆了会导致ORM框架及前端无法识别 #-keep class weg.model.** {*;} # ## 不混淆所有的set/get方法,毕竟项目中使用的部分第三方框架(例如Shiro)会用到大量的set/get映射 #-keepclassmembers public class * {void set*(***);*** get*();} # ## 保持类protected不被混淆 #-keep public class * { public protected ;public protected ; }