对于最新的稳定版本,请使用 Spring Shell 3.3.3! |
架构
本节介绍如何构建 Spring Shell 应用程序。
本机支持
支持将 Spring Shell 应用程序编译为 GraalVM 二进制文件 主要来自 Spring Framework 和 Spring Boot,其中 feature 为 称为 AOT。Ahead of Time 表示已准备好应用程序上下文 在编译期间为 GraalVM 生成做好准备。
从框架构建 AOT 功能 Spring Shell 有其 自己的 GraalVM 配置提供提示 一个二进制文件。通常问题来自第三方库,而 3rd 方库没有 但包含 GraalVM 相关配置或这些配置 是不完整的。
需要使用 GraalVM Reachability Metadata Repository,它
为第三方库提供了一些缺失的提示。此外,您还需要安装 GraalVM 并指向它。JAVA_HOME |
对于 gradle,请添加 graalvm 的原生插件并配置元数据存储库。
plugins {
id 'org.graalvm.buildtools.native' version '0.9.16'
}
graalvmNative {
metadataRepository {
enabled = true
}
}
运行 gradle build 时,您应该获取二进制文件
在 directory 下。./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 时,您应该获取二进制文件
在 directory 下。./mvnw native:compile -Pnative
target
如果一切顺利,此二进制文件可以按原样运行,而不是执行 通过 JVM 引导应用程序 jar。