Proguard混淆代码后jar包启动不了
这是我的proguard.cfg
-target 1.8 ##指定java版本号
-dontshrink ##默认是开启的,这里关闭shrink,即不删除没有使用的类/成员
-dontoptimize ##默认是开启的,这里关闭字节码级别的优化
-useuniqueclassmembernames ##对于类成员的命名的混淆采起惟一策略
-adaptclassstrings ## 混淆类名以后,对使用Class.forName('className')之类的地方进行相应替代
-dontusemixedcaseclassnames ## 混淆时不生成大小写混合的类名,默认是能够大小写混合
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod ##对异常、注解信息在runtime予以保留,否则影响springboot启动
-keepclasseswithmembers public class com.wllc.JavaCmsApplication{
public static void main(java.lang.String[]);
} ##保留main方法的类及其方法名
-keepclassmembers enum * { *; } ##保留枚举成员及方法
pom依赖
<plugin>
<groupId>com.github.wvengengroupId>
<artifactId>proguard-maven-pluginartifactId>
<executions>
<execution>
<phase>packagephase>
<goals><goal>proguardgoal>goals>
execution>
executions>
<configuration>
<proguardVersion>6.2.2proguardVersion>
<injar>${project.build.finalName}.jarinjar>
<outjar>${project.build.finalName}.jaroutjar>
<obfuscate>trueobfuscate>
<proguardInclude>${project.basedir}/proguard.cfgproguardInclude>
<libs>
<lib>${java.home}/lib/rt.jarlib>
<lib>${java.home}/lib/jce.jarlib>
libs>
configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguardgroupId>
<artifactId>proguard-baseartifactId>
<version>6.2.2version>
dependency>
dependencies>
plugin>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
<configuration>
<mainClass>com.wllc.JavaCmsApplicationmainClass>
configuration>
execution>
executions>
plugin>
plugins>
尝试不把包名进行混淆
jar包可以运行代码依旧混淆
我这里记一下 这个工具没弄懂 更换了一个工具实现代码加密防止反编译 https://gitee.com/roseboy/classfinal/blob/master/README.md#https://gitee.com/link?target=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fnet%2Froseboy%2Fclassfinal-fatjar%2F1.2.1%2Fclassfinal-fatjar-1.2.1.jar