本节介绍如何生成 Spring Shell 应用程序。
原生支持
支持将 Spring Shell 应用程序编译为 GraalVM 二进制文件 主要来自 Spring Framework 和 Spring Boot,其中 feature 是 称为 AOT。提前意味着应用程序上下文已准备好 在编译期间为GraalVM生成做好准备。
从框架构建 AOT 功能之上 Spring Shell 具有其 自己的 GraalVM 配置提供提示,提示应该存在于 二进制文件。通常麻烦来自第 3 方库,而第 3 方库则没有 但包含与 GraalVM 相关的配置或这些配置 是不完整的。
需要使用 GraalVM 可访问性元数据存储库,该存储库
为第三方库提供了一些缺失的提示。此外,您还需要安装GraalVM并指向它。JAVA_HOME |
对于 gradle,请添加 graalvm 的原生插件并配置元数据存储库。
plugins {
id 'org.graalvm.buildtools.native' version '0.9.16'
}
graalvmNative {
metadataRepository {
enabled = true
}
}
当 gradle 构建运行时,您应该获得二进制文件
在目录下。./gradlew nativeCompile
build/native/nativeCompile
为了用作父级,您将获得可用于进行编译的配置文件。您需要配置元数据存储库maven
spring-boot-starter-parent
native
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<metadataRepository>
<enabled>true</enabled>
</metadataRepository>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
如果您依赖它,则管理保持最新的版本。spring-boot-starter-parent native-maven-plugin |
当 maven build 运行时,您应该获得二进制文件
在目录下。./mvnw native:compile -Pnative
target
如果一切顺利,这个二进制文件可以按原样运行,而不是执行 通过 JVM 引导应用程序 jar。
需要使用 GraalVM 可访问性元数据存储库,该存储库
为第三方库提供了一些缺失的提示。此外,您还需要安装GraalVM并指向它。JAVA_HOME |
如果您依赖它,则管理保持最新的版本。spring-boot-starter-parent native-maven-plugin |