可以直接通过 java -jar 运行 quarkus-app 目录下 quarkus-run.jar 和 quarkus-web-demo-1.0.0-SNAPSHOT-native-image-source-jar 目录下的 quarkus-web-demo-1.0.0-SNAPSHOT-runner.jar。不到 1 秒的时间就启动完毕了。
访问上面测试地址同样可以看到正确的结果:
此方法打包的二进制文件仍需要依赖 GraalVM,但由于代码已经做了静态编译处理,所以执行效率有大幅提升,比较适合容器化启动。
先安装 VS C 依赖,下载 Visual Studio Installer,需要取消中文并选择英文。然后使用 powershell 进入到项目根目录,执行 mvn package -Pnative 命令后报错:
根据提示安装 native-image 执行安装命令和确认是否配置了 GRAALVM_HOME、JAVA_HOME 环境变量
gu install native-image
# 重新执行打包
mvn package -Pnative
直接运行生成的可执行文件 quarkus-web-demo-1.0.0-SNAPSHOT-runner,确实飞快,启动时间只要 0.033s,访问hello也正常显示。
需要本机先装有 docker 的环境,这里用的是 docker desktop。打包有多种方法,可以直接 maven 参数构建,也可以在 appllications.properties 文件中增加构建参数。
quarkus.native.container-build=true
quarkus.native.native-image-xmx=4096m