当前位置: 首页 > 后端技术 > Java

如何在Quarkus框架中使用NativeImage

时间:2023-04-01 20:35:47 Java

BellSoft发布了新版本的LibericaNativeImageKit(NIK)22.0.0.2,在本文中,我们将讨论如何在Quarkus框架中使用NativeImageKit。LibericaNIK基于开源项目GraalVM(社区版),兼容多种平台,包括基于轻量级musl的AlpineLinux。LibericaNIK本质上是一种将基于JVM的应用程序转换为本机可执行文件(AOT编译)的实用程序。最新版本的LibericaNIK22.0.0.2包括多项增强功能:在适用于macOS的LibericaNIK中添加了对OpenJFX的支持(已经支持Windows和Linux)本机图像默认包含在所有NIK版本中。安装不再需要运行GUI。为什么要使用原生图像?本机图像技术优化资源消耗,最大限度地减少静态足迹,并提供近乎实时的启动。LibericaNIK旨在支持大量平台和编程语言,因此该套件支持多语言程序。使用LibericaNIK降低成本并加速部署。如何在Quarkus框架中使用LibericaNIK?Quarkus是一个云原生开源技术堆栈。传统的Java堆栈是为单体应用程序设计的,而Quarkus是一种新的框架,旨在减少云和容器主导行业的大内存需求。它是为原生镜像量身定制的Kubernetes原生Java框架,非常适合在云中部署和无服务器开发。Quarkus支持JakartaEE/MicroProfile实施的几种流行标准。通过将LibericaNIK与Quarkus框架结合使用,可以进一步提高其效率。构建原生镜像因此,让我们以HelloWorld应用程序为例,使用Quarkus和LibericaNIK构建原生镜像。首先,您需要准备工具和软件。设置C编译器工具链。在Linux上,需要GCC以及glibc和zlib标头。#dnf(基于rpm)sudodnfinstallgccglibc-develzlib-devellibstdc++-static#基于Debian的发行版:sudoaptinstallbuild-essentiallibz-devzlib1g-dev在Windows上,安装VisualStudio2017VisualC++构建工具。对于MacOS,依赖项由XCode提供:xcode-select--install。为了演示如何将LibericaNIK集成到Quarkus中,我们将使用最基本的Quarkus“HelloWorld”应用程序。继续并按照官方文档创建一个简单的Quarkus应用程序。现在您已经准备好HelloWorld应用程序,让我们配置NativeImageKit。首先下载合适版本的LibericaNIK(包中已经包含了LibericaVM和本地映像工具)。下载完成后,通过在命令行验证校验和来检查文件(校验和应与下载页面上链接旁边的校验和匹配)。配置构建环境。对于Linux和macOS,如果您有TGZ/ZIP存档,请将JAVA_HOME环境变量设置为NIK安装目录:exportJAVA_HOME=$HOME/Development/bellsoft-liberica-vm-openjdk11-22.0.0.2如果使用包(deb,pkg/dmg)进行安装,macOS的安装路径为常规路径。在Windows上,通过控制面板设置环境变量。请注意,从21.3.1开始的所有LibericaNIK版本默认都包含本机镜像,允许您跳过gu安装步骤。我们不在这里描述这一步。如果您按照说明构建Quarkus应用程序,您将在pom.xml中找到以下配置文件:nativenative应用程序的本地可执行文件将包含应用程序代码、必要的库、JavaAPI和虚拟机的特殊简化版本。要创建它,请运行以下命令:JAVA_HOME=$HOME/Development/bellsoft-liberica-vm-openjdk11-22.0.0.2./mvnwpackage-Pnative请注意,打包本机可执行文件可能需要一些时间(通常是几分钟),请稍等。如果您按照步骤1中的描述导出命令,则也不需要在每个命令前加上JAVA_HOME设置。可执行文件生成为target/getting-started-1.0.0-SNAPSHOT-runner。为确保一切正常运行,请启动应用程序。如果完成这个简短的练习,您将能够使用最新的LibericaNativeImageKit22.0.0.2实现令人难以置信的应用程序启动时间(仅0.013秒)。享受使用此实用程序的开发体验!