工业互联网平台2.0版本后端代码
houzhongjian
2025-06-05 ca6ad5acfb389b852211355c4a56c71769a018c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#指定Java的版本
-target 1.8
#proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等
-dontshrink
#是否关闭字节码级别的优化,如果不开启则设置如下配置
-dontoptimize
#混淆时不生成大小写混合的类名,默认是可以大小写混合
-dontusemixedcaseclassnames
# 对于类成员的命名的混淆采取唯一策略
-useuniqueclassmembernames
#混淆时不生成大小写混合的类名,默认是可以大小写混合
-dontusemixedcaseclassnames
#混淆类名之后,对使用Class.forName('className')之类的地方进行相应替代
-adaptclassstrings
 
-verbose
-printmapping proguard-mapping.txt  # 生成混淆映射表(用于调试)
 
#对异常、注解信息予以保留
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
# 此选项将保存接口中的所有原始名称(不混淆)-->
-keepnames interface ** { *; }
# 此选项将保存所有软件包中的所有原始接口文件(不进行混淆)
#-keep interface * extends * { *; }
#保留参数名,因为控制器,或者Mybatis等接口的参数如果混淆会导致无法接受参数,xml文件找不到参数
-keepparameternames
# 保留枚举成员及方法
-keepclassmembers enum * { *; }
# 不混淆所有类,保存原始定义的注释-
-keepclassmembers class * {
                        @org.springframework.context.annotation.Bean *;
                        @org.springframework.beans.factory.annotation.Autowired *;
                        @org.springframework.beans.factory.annotation.Value *;
                        @org.springframework.stereotype.Service *;
                        @org.springframework.stereotype.Component *;
                        }
 
#忽略warn消息
-ignorewarnings
#忽略note消息
-dontnote
#打印配置信息
-printconfiguration
-keep public class com.iailab.module.system.SystemServerApplication {
        public static void main(java.lang.String[]);
    }
 # 保留Feign客户端接口
 -keep @org.springframework.cloud.openfeign.FeignClient class * {
     *;
 }
 # 业务包保留
 -keep class com.iailab.module.system.api.** { *; }
 
 # 日志与反射
 -keepclassmembers class * {
     org.slf4j.Logger *;
 }
 -keepattributes RuntimeVisibleAnnotations, Signature
# 保留common模块的公共类
-keep class com.iailab.framework.** { *; }
 
# 保留mybatis-plus相关类
-keep class com.baomidou.mybatisplus.** { *; }
-keep @com.baomidou.mybatisplus.annotation.TableName class * { *; }
 
# 保留数据权限注解
-keep @com.iailab.framework.datapermission.core.** class *
 
 # 保留Spring Cloud配置类
 -keep class org.springframework.cloud.** { *; }
 
 # 保留domain实体类
 -keep class com.iailab.module.*.dal.dataobject.** { *; }
 
 # 保留DTO和VO
 -keep class com.iailab.module.*.controller.**.vo.** { *; }
 -keep class com.iailab.module.*.service.**.dto.** { *; }
 
 # 保留JSON注解
 -keep @com.fasterxml.jackson.annotation.JsonInclude class *
 -keepclassmembers class * {
     @com.fasterxml.jackson.annotation.JsonIgnore *;
     @com.fasterxml.jackson.annotation.JsonProperty *;
 }
 -keep @io.swagger.v3.oas.annotations.Operation class *
 # 保留路由断言工厂类
 -keep class org.springframework.cloud.gateway.handler.predicate.** { *; }
 
 # 保留若依自定义过滤器
 -keep class com.iailab.gateway.filters.** { *; }
 
 # 保留所有Spring组件类的原始名称
 -keepnames @org.springframework.stereotype.Component class *
 -keepnames @org.springframework.stereotype.Service class *
 -keepnames @org.springframework.stereotype.Repository class *
 
 # 保留@Bean方法的名称
 -keepclassmembernames class * {
     @org.springframework.context.annotation.Bean *;
 }
 
 # 保留所有 Spring 注解及组件
 -keep @org.springframework.stereotype.Component class * { *; }
 -keep @org.springframework.context.annotation.Configuration class * { *; }
 
 # 保留配置类及字段
 -keep @org.springframework.boot.context.properties.ConfigurationProperties class * { *; }
 -keepclassmembers @org.springframework.boot.context.properties.ConfigurationProperties class * { *; }
 
 # 保留关键业务模块
 -keep class com.iailab.module.system.framework.sms.** { *; }
 -keepclassmembers class com.iailab.module.system.framework.sms.** { *; }
 
 -keep class com.iailab.module.system.convert.**.** { *; }
  -keepclassmembers class com.iailab.module.system.convert.**.** { *; }
 
 # 保留 Setter 和资源文件
 -keepclassmembers class * { void set*(***); }
 
 # ========== SPI 相关保留 ==========
 -keep interface com.xingyuv.captcha.service.** { *; }
 -keep class * implements com.xingyuv.captcha.service.** { *; }
 
 # ========== Spring 自动配置类 ==========
 -keep @org.springframework.boot.autoconfigure.AutoConfiguration class * { *; }
 -keep class com.xingyuv.captcha.config.** { *; }
 
 # ========== 明确保留报错类 ==========
 -keep class com.iailab.module.system.framework.captcha.core.RedisCaptchaServiceImpl {
     public <init>();
     public *;
 }