有人问我为什么 Windows linux 原生无法顺利执行?也有人说 Restore.exe 可以改名 idea64.exe webstorm64.exe,可以是万事万物。
本项目是一个基于 Java21 的项目,用于自动化加密打包。 1.0 发布
- 项目使用 Maven 3.9.5 版本 进行管理。
PS D:\Project\Restore> mvn --version Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) Maven home: D:\ProgramFiles\Scoop\apps\maven\current Java version: 21.0.1, vendor: GraalVM Community, runtime: D:\ProgramFiles\Scoop\apps\graalvm21-jdk21\current Default locale: zh_CN, platform encoding: UTF-8 OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
- jdk 需要使用 GraavlVM 版本
PS D:\Project\Restore> java -version openjdk version "21.0.1" 2023-10-17 OpenJDK Runtime Environment GraalVM CE 21.0.1+12.1 (build 21.0.1+12-jvmci-23.1-b19) OpenJDK 64-Bit Server VM GraalVM CE 21.0.1+12.1 (build 21.0.1+12-jvmci-23.1-b19, mixed mode, sharing)
- 配置文件
# 自定义最终产物密码 password: zion # 自定义 svn 源码路径 svn: - https://svn.zion/zion # 自定义 git 源码路径 git: - https://gitee.zion/zion # 自定义本地源码路径 path: - D:\Project\Restore
-
构建全量包,包含依赖
mvn -P all clean package
-
使用 agent 生成 reflect-config.json 等文件
cp restore.yml ./target cd target java -agentlib:native-image-agent=config-output-dir=..\src\main\resources\META-INF\native-image -jar .\Restore-all.jar
-
打包 native 有了刚刚生成的配置文件,打包 NativeImage,主要解决反射类加载问题,在构建时初始化
mvn -P native clean package