赞
踩
这边用 springboot 开发打包后得到 jar 包,要在客户机器上部署,有防反编译和绑定唯一id的需求
https://gitee.com/roseboy/classfinal.git
Maven 插件方式引入
<plugin> <groupId>net.roseboy</groupId> <artifactId>classfinal-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <!-- 加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码,当为 # 时不加密 --> <password>xxxx</password> <!-- 加密的包名(可为空,多个用","分割) --> <packages>io.renren</packages> <!-- 配置说明文件,如果没有特殊的打包要求可以注销 cfgfiles 标签 --> <cfgfiles>application.yml</cfgfiles> <code>xxxx</code> <!-- 排除的类名(可为空,多个用","分割) --> <!-- <excludes>org.spring</excludes>--> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>classFinal</goal> </goals> </execution> </executions> </plugin>
打包
会看到得到一个 xxx-encrypted.jar
启动时可以看到提示需要输入密码
java -javaagent:xxx-encrypted.jar -jar xxx-encrypted.jar
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
# 部署的机器上运行
java -jar classfinal-fatjar.jar -C
配置文件的 code 里面 配置待部署的机器上生成的 code
就能实现绑定机器码了
其实还剩下一个后台运行输入 passwd 的需求没实现,这里挺矛盾的,所以实际用的时候我没设置密码,password 那一行注释掉了,后面再填坑吧
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。