如何在 Quarkus 框架中使用 Native Image Kit
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 安裝目錄:
<profiles>
<profile>
<id>native</id>
<properties>
<quarkus.package.type>native</quarkus.package.type>
</properties>
</profile>
</profiles>
如果使用包(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 秒)。使用此實用程序享受您的開發體驗!