BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GradleがJava 10をサポートするバージョン4.7をリリース

GradleがJava 10をサポートするバージョン4.7をリリース

原文(投稿日:2018/05/31)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールと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

リソース

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

BT