カスタマイズ可能なオープンソースのビルド自動化ツールのGradleは、バージョン 7.0をリリースした。このリリースはJDK 16のサポート、より高速なインクリメンタルビルド、検証エラーによるビルド信頼性の向上、およびApple Siliconプロセッサを搭載した新しいMacのネイティブサポートが付属している。さらに、以前のリリースで導入されたいくつかのJVMツールチェーン、依存関係のロック、依存関係の検証、Javaモジュールシステムのサポートなどのプレビュー機能はすべてバージョン 7.0で安定機能として昇格された。
以前のバージョンのGradleは最新のJDK 16では実行できなかった。ただし、JVMツールチェーンを使用し、インクリメンタルコンパイルを無効にすることで、JDK 16を使用してJavaプロジェクトをビルドできた。Gradleの最新の7.0リリースでは、JDK 16でのGradleの実行およびプロジェクトのビルドの両方が完全にサポートされている。Gradle自体は、GroovyベースのDSLビルドスクリプトでGroovy 3を使用するようにアップグレードされ、JDK 16を完全にサポートする。Groovy 3には、新しいJava機能との相互運用性もサポートする新しい機能が満載だ。Groovy 2とGroovy 3は相互に完全な互換性がないため、Gradle 7.0にアップグレードするときに問題が発生する可能性があることには注意が必要だ。詳細なガイダンスについては、Gradleのアップグレード手順を参照すること。
Gradleのリリース毎でインクリメンタルビルドの速度を向上させ続けている。このリリースでは、Windows、Linux、MacOSなど、サポートされているすべてのプラットフォームで、最適化されたファイルシステム監視機能がデフォルトで有効になっている。この最適化は、Gradleがビルドの入力ファイルと出力ファイルへの変更について学習し、ビルド間でその情報をメモリに保持するのに役立つ。これにより、Gradleは各ビルドでファイルシステムからの読み取りをスキップできるため、ビルド間の入力ファイルと出力ファイルの変更を決定するために必要なディスクI/Oの量が削減される。
このリリースでは、空の buildSrc
フォルダを無視することで、ビルド速度がさらに向上した。このリリースより前は、buildSrc
フォルダが存在すると、Gradleは関連するすべてのタスクを実行する必要があり、ビルドキャッシュミスと追加のパフォーマンスオーバーヘッドが発生する可能性があった。Gradleは空の buildSrc
フォルダを無視するようになり、不要なタスクの実行をスキップしてキャッシュミスを回避する。
Gradle 7.0リリースの顕著な安定した機能の1つは、Javaモジュールシステムの完全なサポートだ。ユーザは、Gradleを介してJavaモジュールを構築、テスト、および実行できるようになった。module-info.java があれば、Gradleはjarがモジュールであり、従来のクラスパスではなくモジュールパスに配置する必要があると推測する。
複数のバリアントを持つプラグインのサポート、ローカルプラグインの組み込みビルドの使用、セキュリティアドバイザリの修正、依存関係ロックの改善、実験的なバージョンカタログ、型安全なプロジェクトアクセサーなどのプラグイン開発の改善は、別のGradle 7.0の注目すべき改善と機能の一部だ。