本节介绍如何生成 Spring Shell 应用程序。Spring中文文档

原生支持

支持将 Spring Shell 应用程序编译为 GraalVM 二进制文件 主要来自 Spring FrameworkSpring Boot,其中 feature 是 称为 AOT。提前意味着应用程序上下文已准备好 在编译期间为GraalVM生成做好准备。Spring中文文档

从框架构建 AOT 功能之上 Spring Shell 具有其 自己的 GraalVM 配置提供提示,提示应该存在于 二进制文件。通常麻烦来自第 3 方库,而第 3 方库则没有 但包含与 GraalVM 相关的配置或这些配置 是不完整的。Spring中文文档

需要使用 GraalVM 可访问性元数据存储库,该存储库 为第三方库提供了一些缺失的提示。此外,您还需要安装GraalVM并指向它。JAVA_HOME

对于 gradle,请添加 graalvm 的原生插件并配置元数据存储库。Spring中文文档

plugins {
	id 'org.graalvm.buildtools.native' version '0.9.16'
}

graalvmNative {
	metadataRepository {
        enabled = true
	}
}

当 gradle 构建运行时,您应该获得二进制文件 在目录下。./gradlew nativeCompilebuild/native/nativeCompileSpring中文文档

为了用作父级,您将获得可用于进行编译的配置文件。您需要配置元数据存储库mavenspring-boot-starter-parentnativeSpring中文文档

<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-parentnative-maven-plugin

当 maven build 运行时,您应该获得二进制文件 在目录下。./mvnw native:compile -PnativetargetSpring中文文档

如果一切顺利,这个二进制文件可以按原样运行,而不是执行 通过 JVM 引导应用程序 jar。Spring中文文档

需要使用 GraalVM 可访问性元数据存储库,该存储库 为第三方库提供了一些缺失的提示。此外,您还需要安装GraalVM并指向它。JAVA_HOME
如果您依赖它,则管理保持最新的版本。spring-boot-starter-parentnative-maven-plugin