Skip to content

GraalVM

示例项目: graalvm

Ktor Server 应用程序可以利用 GraalVM 获得适用于不同平台的原生镜像,当然,还能利用 GraalVM 提供的更快启动时间和其他优势。

目前,希望利用 GraalVM 的 Ktor Server 应用程序必须使用 CIO 作为 应用程序引擎

为 GraalVM 做准备

除了安装 GraalVM 并将安装目录添加到系统路径中之外,您还需要准备您的应用程序,以便所有依赖项都捆绑在一起,即您需要创建一个 fat jar。

反射配置

GraalVM 对使用反射的应用程序有一些要求,Ktor 就是如此。它要求您提供一个包含特定类型信息的 JSON 文件。然后,此配置文件将作为实参传递给 native-image 工具。

执行 native-image 工具

一旦 fat jar 准备就绪,唯一需要的步骤是使用 native-image CLI 工具创建原生镜像。这也可以通过 Gradle 插件 来完成。您可以在此处 查看 build.gradle.kts 文件的示例。但是,请注意,某些选项可能会因所使用的依赖项、项目包名等而异。

运行生成的二进制文件

如果 shell 脚本执行时没有出现任何错误,您将获得一个原生应用程序,在示例中,它被称为 graal-server。执行它将启动 Ktor Server,并在 https://0.0.0.0:8080 响应。

//: # (

Code example: deployment-ktor-plugin

)

//: # (Ktor Server 应用程序可以利用 GraalVM 获得适用于不同平台的原生镜像,当然,还能利用 GraalVM 提供的更快启动时间和其他优势。Ktor Gradle 插件 允许您构建项目的 GraalVM 原生镜像。)

//: # (> 目前,希望利用 GraalVM 的 Ktor Server 应用程序必须使用 CIO 作为 应用程序引擎。)

//: # (- GraalVMNative Image 已安装。)

//: # (2. 确保 主应用程序类 已配置:)