文章目录
- 概要
- 整体流程
概要
我使用的项目为微服务项目
整体流程
-
明确所有需要加密的jar包:
可以通过maven的package指令,查看日志,后缀为jar的即为所有需要加密的jar包。 -
在跟pom文件的properties属性中定义classfinal maven插件的属性值
<!--classfinal插件版本--><classfinal.version>1.2.1</classfinal.version><!--要加密jar文件名(可为空,多个用","分割)--><classfinal.libjars>fscloud-common-core-2.5.0.jar,fscloud-api-system-2.5.0.jar,fscloud-common-redis-2.5.0.jar,fscloud-common-security-2.5.0.jar,fscloud-auth-2.5.0.jar,fscloud-gateway-2.5.0.jar,fscloud-visual-monitor-2.5.0.jar,fscloud-common-datasource-2.5.0.jar,fscloud-common-datascope-2.5.0.jar,fscloud-common-log-2.5.0.jar,fscloud-common-swagger-2.5.0.jar,fscloud-modules-system-2.5.0.jar,fscloud-modules-gen-2.5.0.jar,fscloud-modules-job-2.5.0.jar,fscloud-modules-file-2.5.0.jar,fscloud-news-2.5.0.jar,fscloud-fservices-2.5.0.jar</classfinal.libjars><!--加密密码,如果是#号,则使用无密码模式加密--><classfinal.password>1234</classfinal.password><!--需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)--><classfinal.cfgfiles> </classfinal.cfgfiles><!--加密的包名(可为空,多个用","分割)--><classfinal.packages>com.fscloud</classfinal.packages><!--排除的类名(可为空,多个用","分割)--><classfinal.excludes>org.spring</classfinal.excludes>
- 在各个需要加密的服务的pom文件中引入classfinal maven 插件,放在plugins标签里面
<plugin><!-- https://gitee.com/roseboy/classfinal --><groupId>net.roseboy</groupId><artifactId>classfinal-maven-plugin</artifactId><version>${classfinal.version}</version><configuration><password>${classfinal.password}</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码--><packages>${classfinal.packages}</packages><cfgfiles>${classfinal.cfgfiles}</cfgfiles><excludes>${classfinal.excludes}</excludes><libjars>${classfinal.libjars}</libjars></configuration><executions><execution><phase>package</phase><goals><goal>classFinal</goal></goals></execution></executions></plugin>
java -javaagent:yourpaoject-encrypted.jar="-pwd 1234" -jar yourpaoject-encrypted.jar//参数说明
// -pwd 加密项目的密码
// -pwdname 环境变量中密码的名字// 也可以使用下面的方式,在控制台输入密码启动
java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar
注意:引号为双引号,如果写成了单引号会导致启动失败