6月19日、The Gradle Blogで「Road to Gradle 9 with Louis Jacomet」と題した記事が公開された。この記事では、Gradle 9の主要な改善点と新機能について詳しく紹介されている。
以下に、その内容を簡潔にまとめて紹介する。
Gradle 9の主な焦点
Gradle 9において重視している事柄は以下の3つである。
パフォーマンス
Gradle 9では、ビルド速度の向上が最重要視されている。特に、設定キャッシュの改善が進められている。分かりやすさ
Gradleの使用方法や設定がより理解しやすくなるように、ドキュメントの改善や新しいAPIの導入が行われる。最新のJavaおよびKotlinバージョンのサポート
Gradle 9では、最新のJava 23およびKotlin 2.0のサポートが予定されている。
これらの大方針に基づき、以下に述べるような様々な変更に取り組んでいる。
設定キャッシュの改善
設定キャッシュは、Gradle 8.1で安定版とされたが、Gradle 9ではデフォルトで有効になる予定だ。これにより、ビルドの設定フェーズが高速化され、全体的なビルド時間が短縮される。
アイソレーテッドプロジェクト
設定キャッシュがヒットしない場合でも、アイソレーテッドプロジェクト機能を使用することで、設定フェーズを並列に実行し、インクリメンタルにキャッシュすることが可能になる。この機能は現在のところ初期段階にあり、Gradle 9では試験的なバージョンが提供される予定だ。
Kotlin 2.0統合
Gradle 9では、Kotlin 2.0の統合が予定されており、新しいK2コンパイラを活用してKotlinビルドスクリプトのコンパイル速度を向上させる。Kotlin 2.0のサポートは、Gradle 9の主要なアップデートの一つとなる。
レイジーAPIとバイトコード変換
Gradleは以前からレイジーAPIを推奨しており、Gradle 9ではこのAPIへの大規模な移行が計画されている。これにより、設定フェーズ中にプロパティを適切に評価し、実行時に正しい値を取得できるようになる。
interface Extension {
val description: Property<String>
}
// register "extension" with type Extension
extension {
description.set("Hello Property")
description = "Hello Property"
}
Javaバージョンサポート
Gradleは、新しいJavaバージョンのサポートを迅速に行うことを目指している。Gradle 8.7ではJava 22がサポートされており、Java 23のサポートはGradle 9.0で提供される予定だ。
詳細はRoad to Gradle 9 with Louis Jacometを参照していただきたい。