此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 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 使用./gradlew nativeCompile
你应该得到二进制
下build/native/nativeCompile
目录。
为maven
用spring-boot-starter-parent
作为 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。