问题遇到的现象和发生背景
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.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals><goal>proguard</goal></goals>
</execution>
</executions>
<configuration>
<proguardVersion>6.2.2</proguardVersion>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}.jar</outjar>
<obfuscate>true</obfuscate>
<proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
</libs>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>6.2.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>com.wllc.JavaCmsApplication</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
运行结果及报错内容
我的解答思路和尝试过的方法
尝试不把包名进行混淆
我想要达到的结果
jar包可以运行代码依旧混淆