springboot proguard demo


POM文件

${artifactId}






com.github.wvengen
proguard-maven-plugin
2.3.1


package

proguard




6.2.2
true
${project.basedir}/src/main/resources/proguard.cfg

${java.home}/lib/rt.jar
${java.home}/lib/jce.jar


${project.build.finalName}.jar
${project.build.finalName}.jar
${project.build.directory}



net.sf.proguard
proguard-base
6.2.2
runtime





org.springframework.boot
spring-boot-maven-plugin

cn.didisos.sos.cost.Demo30Application




repackage







proguard.cfg
-target 1.8

-dontshrink

-dontoptimize

#-ignorewarnings

#-dontskipnonpubliclibraryclasses

#-dontskipnonpubliclibraryclassmembers

-dontusemixedcaseclassnames

-allowaccessmodification

-adaptclassstrings

-keeppackagenames

-useuniqueclassmembernames

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation,Synthetic,EnclosingMethod

-keep interface * extends * {*;}

-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.stereotype.Service *;
@org.springframework.stereotype.Component *;
@org.springframework.web.bind.annotation.PostMapping *;
@org.springframework.web.bind.annotation.DeleteMapping *;
@org.springframework.web.bind.annotation.RestController *;
@javax.annotation.Resource *;
}

-keep class * implements java.io.Serializable {*;}
-keep class * implements org.springframework.boot.CommandLineRunner {*;}

-keepclassmembers enum *{
*;
}
-keep class cn.didisos.sos.cost.Demo30Application{
public static void main(java.lang.String[]);
}

-keep class cn.didisos.sos.cost.Demo30Application{ *;}


-keep class cn.didisos.sos.cost.mapper.** {*;}

-keep class cn.didisos.sos.cost.model.** {*;}



-keepclassmembers public class * { void set*(***); *** get*();}

#-dontwarn **