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。
为什么要应用原生图像?
Native image 技术优化了资源耗费,最大限度地缩小了动态占用空间,并提供简直实时的启动。Liberica NIK 旨在反对大量平台和编程语言,因而该套件反对多种语言程序。应用 Liberica NIK 能够降低成本并减速部署。
如何在 Quarkus 框架中应用 Liberica NIK?
Quarkus 是云原生的开源技术堆栈。尽管传统的 Java 堆栈是为单体应用程序而设计的,但 Quarkus 是一个新的浪潮框架,旨在缩小云和容器主导行业中的大内存需要。它是一个 Kubernetes 原生 Java 框架,专为原生镜像量身定制,非常适合在云中部署和无服务器开发。Quarkus 反对 Jakarta EE/MicroProfile 施行的几种风行规范。
通过将 Liberica NIK 与 Quarkus 框架一起应用,能够进一步提高其效率。
构建一个原生镜像
因而,让咱们以 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 找到以下配置文件:
<profiles>
<profile>
<id>native</id>
<properties>
<quarkus.package.type>native</quarkus.package.type>
</properties>
</profile>
</profiles>
应用程序的本机可执行文件将蕴含利用程序代码、必要的库、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 秒)。应用此实用程序享受您的开发体验!