如题:springboot maven项目使用代码混乱工具proguard的时候,发现类名称变成a\b\c了,但是局部变量名称还是原来的。
我想保持类名是原来的,方法里面的局部变量改成a、b、c之类的应该要添加哪个配置呢?
# JDK目标版本1.8
-target 1.8
# 不做收缩(删除注释、未被引用代码)
-dontshrink
# 不做优化(变更代码实现逻辑)
-dontoptimize
-ignorewarnings
# 不路过非公用类文件及成员
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
<!--不用大小写混合类名机制
-dontusemixedcaseclassnames
# 优化时允许访问并修改有修饰符的类和类的成员
-allowaccessmodification
# 确定统一的混淆类的成员名称来增加混淆
-useuniqueclassmembernames
# 不混淆所有包名,本人测试混淆后WEB项目问题实在太多,毕竟Spring配置中有 大量固定写法的包名
-keeppackagenames
-adaptclassstrings
# -keepdirectories
# 不混淆所有特殊的类
-keepattributes
Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
# This option will save all original methods parameters in files defined in -keep sections, otherwise all parameter names will be obfuscate.
-keepparameternames
-keep interface * extends * { *; }
-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
}
# 混淆这个包下的类
-keep class !com.example.** { *; }
# 不混淆main方法
-keep class com.example.Application { *; }
# 不混淆所有的set/get方法,毕竟项目中使用的部分第三方框架(例如Shiro)会用到大量的set/get映射
-keepclassmembers public class * {void set*(***);*** get*();}
# 不对包类的类名进行混淆,但对类中的属性和方法混淆
-keep class com.example.controller.**
-keep class com.example.service.**
-keep class com.example.repository.**
# 不混淆包下的所有类名,且类中的方法和属性也不混淆
-keep class com.example.redis.** { *; }
-keep class com.example.domain.** { *; }
-keep class com.example.dto.** { *; }
-keep class com.example.config.**{ *; }
-keep class com.example.dao.** { *; }