読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます。新機能の詳細をご覧ください。
包括的な多言語ビルドツールであるGradleは、次のような新機能を備えたバージョン4.7をリリースした。
- インクリメンタルアノテーション処理
- Java 10ランタイムサポート
- グループ化された非対話型コンソールログ
- 速なフィードバックのために失敗したテストを最初に再実行
- Kotlin DSL 0.16が新しいプリコンパイル済みスクリプトプラグインを搭載
いくつかの機能を本記事で紹介する。
インクリメンタルアノテーション処理
バージョン2.1から利用できるGradleのインクリメンタルJavaコンパイラは、アノテーションの増分処理を含むように拡張された。Gradleは、インクリメンタルコンパイルのためのアノテーションプロセッサを2種類サポートしている。アノテーション付き要素を単独で評価する場所を分離し、複数のアノテーションが付いた要素を1つ以上の出力ファイルに集約する場所を集約する。他のタイプのアノテーションプロセッサはすべて、アノテーションをすべて再コンパイルするトリガを発行する。
以下の例は、Daggerアノテーションプロセッサをbuild.gradle
ファイルに追加する方法を示している。
dependencies {
// the Dagger compiler will only be found on the annotation class path
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'
// the Dagger library is still required on the compile class path
implementation 'com.google.dagger:dagger:2.8'
}
非対話型コンソールログ
Gradleは、IDEまたはCIビルドエージェントで使用されるプレーンと、コマンドラインで使用されるリッチの2つのコンソールモードをサポートする。このリリース以前は、プレーンモード(IntelliJ IDEA内のGradle4.4を使った以下の例で示すように)からの出力には、リッチモードで出力されるものと同じ系統的な出力はなかった。
この新しいリリースでは、プレーンモードとリッチモードの両方で同じ出力が生成される。以下のコマンドラインの例に示すように、Gradleタスクによって生成されたログ情報はグループ化され、ヘッダーは> Task
の前に出力される。
Kotlin DSL
Gradleは現在Gradle Kotlin DSLバージョン0.16.3をサポートしている。バージョン0.16.3では、Kotlinバージョン1.2.31とJava 10をサポートするプリコンパイル済みのKotlin DSLスクリプト、IntelliJ IDEAとのインテグレーションの改善、および、より一貫性のあるAPIが提供されている。
リリースノートで次の通り定義されている。
プリコンパイルされたスクリプトプラグインは、Kotlinソースセットの一部としてコンパイルされたKotlinスクリプトであり、バイナリGradleプラグインとして使われる。その識別子はファイル名とオプションパッケージの宣言から自動的に生成される。
プリコンパイルされたスクリプトの使用は、build.gradle
ファイルで有効化できる。
plugins {
'java-gradle-plugin'
'kotlin-dsl'
}
apply<org.gradle.kotlin.dsl.plugins.precompiled.PrecompiledScriptPlugins>()
有効になると、src/main/kotlin
で定義されたスクリプトが自動的に通常のGradleプラグインとして公開される。以下の例では、my-plugin.gradle.kts
として定義されたスクリプトは、my-plugin
としてGradleに認識され、その後build.gradle
ファイルで使用される。
Gradleがサポートする言語は次のとおりである。
- Java
- C++
- Python ({py}gradle)
- JavaScript
- Clojure
- Scala
リソース
- GradleのYouTubeチャンネル
- Gradle 3.4のインクリメンタルコンパイル、Javaライブラリプラグイン、その他のパフォーマンス機能、Cédric Champeau著 (2017年2月25日)
- Gradle Kotlin DSLチュートリアル、Nick Apperley著 (2018年1月2日)
Rate this Article
- Editor Review
- Chief Editor Action