- Antには、コンパイル環境のJavaバージョンを判定・取得する
JavaEnvUtils
というクラスがあるが、このクラスは最新の1.10.12でもJava 12までしか定義がない。 https://github.com/apache/ant/blob/master/src/main/org/apache/tools/ant/util/JavaEnvUtils.java - Groovyはversion 4.0に向けてJava17対応中。http://groovy-lang.org/releasenotes/groovy-4.0.html Java 17環境ではJDKクラスライブラリ中のメソッドを
.groovy
中で上手くオーバーライドできない場合があるらしく(ClassLoader.defineClass()
とかStringBuilder.substring()
とかをオーバーライドしようとするとコケる)、かなり影響が大きそう。- SpockのGroovy 4対応は現在進行中なので、Spockを使っている場合はそこに足を引っぱられてJava 17への対応が行えない。 https://github.com/spockframework/spock/pull/1382