Gradle プラグインの graalvm-native-image を改良してみる

plugins.gradle.org

JDK をいくつもインストールしてるのでこういう風に使えると便利そう。

plugins {
  id 'java'
  id 'org.mikeneck.graalvm-native-image'
}

repositories {
  mavenCentral()
}

dependencies {
  implementation 'org.slf4j:slf4j-simple:1.7.28'
}

nativeImage {
  // graalVmHome = System.getProperty('java.home')
  findGraalVmHome = true
  installNativeImage = true
  mainClass = 'com.example.App'
  executableName = 'test-app'
  arguments('--no-fallback')
}

改良ポイント

graalVmHome を自動的に探して欲しい

findGraalVmHome = true

環境変数 PATH から gu コマンドのある場所を探せばよさそうだった。

native-image コンポーネントが無ければ自動的にインストールして欲しい

installNativeImage = true

graalVmHome が見つかっていれば gu コマンドも見つかっているので、単純に gu install native-image するだけで済む。

実装した

GitHub - yujiorama/graalvm-native-image-plugin at feature/find-graalvmhome_ondemand-install-native-image

issue も書いてみた。mike-neck さんならなんかいい感じの実装をしてくれるんじゃないかな。