使用插件对jar包进行加密
<plugin>
<!-- 1.加密后,方法体被清空,保留方法参数、注解等信息:是为了兼容spring、swagger等扫描注解的框架
2.方法体被清空后,反编译者只能看到方法名和注释,看不到方法的具体内容
3.加密后的项目需要设置javaagent来启动,启动过程中解密class,完全内存解密,不留下任何解密后的文件
启动加密的jar:生成xxxx-encrypted.jar,这个就是加密后的jar文件:加密后的文件不可直接执行
无密码:启动命令 java -javaagent:xxxx-encrypted.jar -jar xxxx-encrypted.jar
有密码:启动命令 java -javaagent:xxxx-encrypted.jar='-pwd 000000' -jar xxxx-encrypted.jar-->
<groupId>net.roseboy</groupId>
<artifactId>classfinal-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<password>#</password> <!--加密密码,如果是#号,则使用无密码模式加密-->
<packages>com.gongcun</packages> <!--加密后的包名(可为空,多个用“,”分割)-->
<cfgfiles>application.yml</cfgfiles> <!--需要加密的配置文件,一般是class目录下的yml或者properties文件(可为空,多个用“,”分割)-->
<libjars></libjars> <!--jar包lib下要加密的jar文件名(可为空,多个用“,”分割)-->
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>classFinal</goal>
</goals>
</execution>
</executions>
</plugin>