|
|
## -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.** { <methods>; }
|
|
|
#-keep class weg.service.** { <methods>; }
|
|
|
#-keep class weg.dao.** { <methods>; }
|
|
|
#-keep class weg.util.** { <methods>; }
|
|
|
#
|
|
|
## 不混淆quartz包下的所有类名,且类中的方法也不混淆
|
|
|
#-keep class weg.quartz.** { <methods>; }
|
|
|
#
|
|
|
## 不混淆model包中的所有类以及类的属性及方法,实体包,混淆了会导致ORM框架及前端无法识别
|
|
|
#-keep class weg.model.** {*;}
|
|
|
#
|
|
|
## 不混淆所有的set/get方法,毕竟项目中使用的部分第三方框架(例如Shiro)会用到大量的set/get映射
|
|
|
#-keepclassmembers public class * {void set*(***);*** get*();}
|
|
|
#
|
|
|
## 保持类protected不被混淆
|
|
|
#-keep public class * { public protected <fields>;public protected <methods>; } |