1.11. 以原生模式打包并运行红帽构建的 Quarkus 入门应用程序
在原生模式中,应用构建的输出是一个独立于平台的原生二进制文件,而不是压缩或归档 JAR 文件。有关原生模式与 Java 虚拟机(JVM)不同的更多信息,请参阅 JVM 和原生构建模式。
先决条件
-
已安装 OpenJDK 17 或 21,并设置
JAVA_HOME
环境变量来指定 Java SDK 的位置。 - 已安装 Apache Maven 3.9.9。
- 您有一个正常工作的 C 开发环境。
- 您有可正常工作的容器运行时,如 Docker 或 Podman。
可选 :如果要使用 Quarkus 命令行界面(CLI),请确保已安装它。
- 有关如何安装 Quarkus CLI 的说明,请参阅 Quarkus CLI 中的特定于社区的信息。
- 您已克隆并编译了 Quarkus Getting Started 项目。
您已下载并安装了 GraalVM 的社区或企业版本。
- 要下载并安装社区或 GraalVM 的企业级版本,请参阅官方 使用 GraalVM 文档。
- 或者,使用特定于平台的安装工具,如 sdkman、homebrew 或 scoop。
虽然您可以使用 GraalVM 的社区版本完成 Getting Started 指南中的所有流程,但红帽构建的 Quarkus 生产环境中不支持 GraalVM 社区版本。如需更多信息,请参阅将 红帽构建的 Quarkus 应用程序编译到原生可执行文件。
流程
通过将
GRAALVM_HOME
环境变量设置为 GraalVM 安装目录来配置运行时环境。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export GRAALVM_HOME=$HOME/Development/graalvm/
export GRAALVM_HOME=$HOME/Development/graalvm/
在 macOS 中,将变量设置为
Home
子目录:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export GRAALVM_HOME=$HOME/Development/graalvm/Contents/Home/
export GRAALVM_HOME=$HOME/Development/graalvm/Contents/Home/
- 在 Windows 服务器上,使用 Control Panel 设置环境变量。
安装
native-image
工具:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ${GRAALVM_HOME}/bin/gu install native-image
${GRAALVM_HOME}/bin/gu install native-image
将
JAVA_HOME
环境变量设置为 GraalVM 安装目录:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export JAVA_HOME=${GRAALVM_HOME}
export JAVA_HOME=${GRAALVM_HOME}
将 GraalVM
bin
目录添加到路径中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PATH=${GRAALVM_HOME}/bin:$PATH
export PATH=${GRAALVM_HOME}/bin:$PATH
进入 Getting Started 项目文件夹:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd getting-started
cd getting-started
使用以下方法之一编译原生镜像:
使用 Maven:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn clean package -Pnative
mvn clean package -Pnative
使用 Quarkus CLI:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow quarkus build --native
quarkus build --native
使用 Maven 打包程序:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./mvnw clean package -Pnative
./mvnw clean package -Pnative
验证
启动应用程序:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./target/getting-started-1.0.0-SNAPSHOT-runner
./target/getting-started-1.0.0-SNAPSHOT-runner
观察日志消息,并验证它是否包含
原生
一词:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2024-09-25 08:35:51,505 INFO [io.quarkus] (main) getting-started 1.0.0-SNAPSHOT native (powered by Quarkus 3.20.0.redhat-00002) started in 0.043s. Listening on: http://0.0.0.0:8080
2024-09-25 08:35:51,505 INFO [io.quarkus] (main) getting-started 1.0.0-SNAPSHOT native (powered by Quarkus 3.20.0.redhat-00002) started in 0.043s. Listening on: http://0.0.0.0:8080
其他资源
- 有关其他提示或故障排除信息,请参阅 Quarkus 构建原生可执行文件 指南。