如何在Quarkus 框架中使用 Native Image

BellSoft 发布了Liberica Native Image Kit (NIK) 的新版本, 22.0.0.2,在本文中,我们聊一下如何将Native Image Kit与 Quarkus 框架一起使用。

Liberica NIK 基于开源项目 GraalVM(社区版),兼容多种平台,包括基于轻量级 musl 的 Alpine Linux。Liberica NIK 本质上是将基于 JVM 的应用程序转换为本机可执行文件(AOT 编译)的实用程序。

Liberica NIK 22.0.0.2 最新版本包括多项增强功能:

  • 在 Liberica NIK for macOS 中添加了对 OpenJFX 的支持(已经支持 Windows 和 Linux)
  • Native image默认包含在所有 NIK 风格中。安装不再需要运行 GU。

如何在Quarkus 框架中使用 Native Image_第1张图片

为什么要使用原生图像?

Native image技术优化了资源消耗,最大限度地减少了静态占用空间,并提供几乎实时的启动。Liberica NIK 旨在支持大量平台和编程语言,因此该套件支持多种语言程序。使用 Liberica NIK 可以降低成本并加速部署。

如何在 Quarkus 框架中使用 Liberica NIK?

Quarkus 是云原生的开源技术堆栈。虽然传统的 Java 堆栈是为单体应用程序而设计的,但 Quarkus 是一个新的浪潮框架,旨在减少云和容器主导行业中的大内存需求。它是一个 Kubernetes 原生 Java 框架,专为原生镜像量身定制,非常适合在云中部署和无服务器开发。Quarkus 支持 Jakarta EE/MicroProfile 实施的几种流行标准。

通过将 Liberica NIK 与 Quarkus 框架一起使用,可以进一步提高其效率。

如何在Quarkus 框架中使用 Native Image_第2张图片

构建一个原生镜像

因此,让我们以 Hello World 应用程序为例,使用 Quarkus 和 Liberica NIK 构建本机映像。首先,您需要准备工具和软件。

设置一个 C 编译器工具链。在 Linux 上,GCC 以及 glibc 和 zlib 头文件是必需的。

# dnf (rpm-based)

sudo dnf install gcc glibc-devel zlib-devel libstdc++-static

# Debian-based distributions:

sudo apt install build-essential libz-dev zlib1g-dev

在 Windows 上,安装Visual Studio 2017 Visual C++ Build Tools。

在 MacOS 的情况下,依赖项由 XCode 提供:xcode-select --install.

为了演示如何将 Liberica NIK 集成到 Quarkus 中,我们将使用最基本的 Quarkus “Hello World”应用程序。继续按照官方文档创建一个简单的 Quarkus 应用程序。

现在您已经准备好 Hello World 应用程序,让我们配置 Native Image Kit。

首先下载适合版本的Liberica NIK(该软件包已包含 Liberica VM 和本机映像工具)。下载完成后,通过在命令行中验证校验和来检查文件(校验和应与下载页面上链接旁边的校验和匹配)。

配置构建环境。对于 Linux 和 macOS,如果您有 TGZ/ZIP 存档,将JAVA_HOME环境变量设置为 NIK 安装目录:

export JAVA_HOME=$HOME/Development/bellsoft-liberica-vm-openjdk11-22.0.0.2

如果使用包(deb、pkg/dmg)进行安装,macOS 的安装路径是常规路径。

在 Windows 上,通过控制面板来设置环境变量。

注意,从 21.3.1 开始的所有 Liberica NIK 版本都默认包含原生镜像,允许您跳过 gu install 步骤。我们不在这里描述这个步骤。

如果您按照说明构建了 Quarkus 应用程序,您将在 pom.xml 找到以下配置文件:


    
        native
        
            native
        
    

应用程序的本机可执行文件将包含应用程序代码、必要的库、Java API 以及虚拟机的特殊简化版本。要创建它,请运行以下命令:

JAVA_HOME=$HOME/Development/bellsoft-liberica-vm-openjdk11-22.0.0.2./mvnw package -Pnative

注意,打包本机执行文件可能需要一些时间(通常几分钟),请耐心等待。JAVA_HOME如果您按照步骤 1 中的说明导出命令,也不需要在每个命令前面加上设置。

生成的可执行文件作为
target/getting-started-1.0.0-SNAPSHOT-runner.

为确保一切正常运行,启动应用程序。

如果您完成了这个简短的练习,您将能够使用最新的 Liberica Native Image Kit 22.0.0.2 达到令人难以置信的应用程序启动时间(仅 0.013 秒)。使用此实用程序享受您的开发体验!

你可能感兴趣的:(java)