最新の安定バージョンについては、Spring Shell 3.4.0 を使用してください! |
ビルド
このセクションでは、Spring Shell アプリケーションを構築する方法について説明します。
ネイティブサポート
Spring Shell アプリケーションを GraalVM バイナリにコンパイルするためのサポートは、主に Spring Framework および Spring Boot から提供され、機能は AOT と呼ばれます。アヘッドオブタイムとは、コンパイル時にアプリケーションコンテキストが準備され、GraalVM 生成の準備が整うことを意味します。
フレームワーク Spring Shell からの AOT 機能上に構築する独自の GraalVM 構成があり、バイナリに何が存在すべきかのヒントを提供します。通常、問題は、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 ビルドが ./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 ビルドが ./mvnw native:compile -Pnative
で実行されると、target
ディレクトリにバイナリを取得する必要があります。
すべてがうまくいった場合、jvm を介して Boot アプリケーション jar を実行する代わりに、このバイナリをそのまま実行できます。