此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

架构

本节介绍如何构建 Spring Shell 应用程序。spring-doc.cn

本机支持

支持将 Spring Shell 应用程序编译为 GraalVM 二进制文件 主要来自 Spring FrameworkSpring Boot,其中 feature 为 称为 AOT。Ahead of Time 表示已准备好应用程序上下文 在编译期间为 GraalVM 生成做好准备。spring-doc.cn

从框架构建 AOT 功能 Spring Shell 有其 自己的 GraalVM 配置提供提示 一个二进制文件。通常问题来自第三方库,而 3rd 方库没有 但包含 GraalVM 相关配置或这些配置 是不完整的。spring-doc.cn

需要使用 GraalVM Reachability Metadata Repository,它 为第三方库提供了一些缺失的提示。此外,您还需要安装 GraalVM 并指向它。JAVA_HOME

对于 gradle,请添加 graalvm 的原生插件并配置元数据存储库。spring-doc.cn

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

graalvmNative {
	metadataRepository {
        enabled = true
	}
}

运行 gradle build 时,您应该获取二进制文件 在 directory 下。./gradlew nativeCompilebuild/native/nativeCompilespring-doc.cn

用作父级,您将获得可用于进行编译的配置文件。您需要配置元数据存储库mavenspring-boot-starter-parentnativespring-doc.cn

<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 时,您应该获取二进制文件 在 directory 下。./mvnw native:compile -Pnativetargetspring-doc.cn

如果一切顺利,此二进制文件可以按原样运行,而不是执行 通过 JVM 引导应用程序 jar。spring-doc.cn