使用XJar对springboot项目打包时进行加密
一,配置说明
1. 更改 pom.xml
首先添加 jitpack.io 插件仓库
<!-- 设置 jitpack.io 插件仓库 -->
<pluginRepositories>
<pluginRepository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</pluginRepository>
</pluginRepositories>
再添加xjar插件
- 建议不要再pom文件的xjar插件中设置密码,而是在打包时通命令行设置密码,因为pom文件无法被加密
- 建议在下文代码中的includes代码块中添加你想要加密的代码,不然会默认加密整个jar包,加密完的jar包会变得很大
<plugin>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar-maven-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<phase>package</phase>
<!--<phase>install</phase>-->
<configuration>
<!--可选配置,详见github项目
<password/>
<algorithm/>
<keySize/>
<ivSize/>
<includes>
<include/>
</includes>
<excludes>
<exclude/>
</excludes>
<sourceDir/>
<sourceJar/>
<targetDir/>
<targetJar/> -->
</configuration>
</execution>
</executions>
</plugin>
注意,xjar插件要放在 spring-boot-maven-plugin 之后,而且这个插件可能需要做如下改动
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--xjar不允许设置executable-->
<!--<executable>true</executable>-->
<!--xjar不允许设置embeddedLaunchScript-->
<!--<embeddedLaunchScript></embeddedLaunchScript>-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
二,打包
# ${password} 为你自己设置的加密密码
sudo mvn clean package -Dxjar.password=${password}
运行完后在 target 目录下生成如下两个文件
- xjar.go
- 项目名称 .xjar
接下来执行
# 需要提前安装go语言环境
sudo go build xjar.go
执行结束后可以看到生成 xjar 文件 (windows下为xjar.exe)这是加密后的 jar 包的启动器
然后我们将 项目名称 .xjar 的后缀名改为 .jar
我们就获得了执行jar包需要的所有材料,包括:
- xjar (启动器)
- 项目名称 .jar (加密后的jar包,需要启动器来运行)
三,运行
sudo ./xjar java -jar 项目名称 .jar