mike-neckのブログ

Java or Groovy or Swift or Golang

graalvm-native-image-plugin を GraalVM 20.3 に対応させました

少し前になりますが、 graalvm-native-image-plugin を最新の GraalVM 20.3 に対応させました。

plugins.gradle.org

このプラグインにはお節介な機能をつけていて、 native-image を実行する時の設定ファイルを自動で生成するという機能をつけています。

で、この設定ファイルのうち resource-config.json というリソースファイル読み込みに関する設定ファイルのフォーマットが 20.3 から変更されてしまったために、 もろに影響を喰らってしまったというわけで、 20.3 の対応が必要になりました。 お節介はするものじゃないです。

また、 20.3 から TraceClassInitialization オプションの指定の仕方も変わり、サンプルやテストで使っていたためにビルドが通らなくなったため、サンプルやテストを修正する必要が発生しました。

とはいえ、これら 2 つの変更により後方互換性が壊れるために、壊れないような方法を採択するべく考えていたら結構な量(2000行程度)の変更になってしまいました。

github.com

というわけで、これらの変更は 2020/12/19 にリリースしています。

plugins.gradle.org

これにて一安心と思ったのもつかの間、フォーマットが違っててエラーが発生するという issue をもらいました

github.com

issue をあげてくれた方にエラーになるファイルをもらった関係上、この対応の修正は 1 万行を超えました(40 行くらいしか直してないので、残りはすべてエラーになるファイル)

github.com

こちらは冒頭にあるとおり 2020/12/25 にリリースしています。