GradleはApache AntやApache Mavenのコンセプトに基づくオープンソースなビルド自動化システムであり、プロジェクト設定の宣言にはApache Mavenが利用するXML形式ではなくGroovyベース、もしくはKotlin Scriptベースのドメイン固有言語 (DSL) を採用している。Gradleはタスクの起動順序の決定に有向非巡回グラフ(、DAG)を利用する。

Gradleは非常に大きくなる可能性のあるマルチプロジェクトのビルド用に設計されており、ビルドツリーのどの部分が最新であるかをインテリジェントに決定する増分ビルドをサポートする。このため、最新の増分ビルド部分に依存するタスクを再実行する必要は一切ない。

初期のプラグインはJava、Groovy、およびScalaの開発と配備に第一に焦点を当てられているが、ロードマップにはその他の言語やプロジェクトに対するワークフローが示されている。

Javaプロジェクトの例 Javaソースとリソース用にMavenディレクトリ構造が使われているケースを仮定する。Mavenディレクトリ構造はそれぞれsrc/main/java、src/main/resources、src/test/java、src/test/resourcesである。

build.gradle plugins { java }

gradlew buildを実行することで以下を得る:

> gradlew build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :build

BUILD SUCCESSFUL

Javaプラグインは全てのタスクの入出力の間における依存関係の有向非巡回グラフ内タスクとして予想されるMavenライフサイクルを多数エミュレートする。このシンプルなケースではbuildタスクはcheckタスクとassembleタスクに依存しており、同様にcheckタスクはtestタスクに、assembleタスクはjarタスクに依存している。

Mavenの慣例に従わないプロジェクト用として、Gradleはディレクトリ構造を設定できる。以下はソースファイルがMavenによる慣例のsrc/main/javaではなくsrc/javaに含まれるプロジェクトをサポートするための例である:

build.gradle apply plugin: 'java' sourceSets.main.java.srcDirs = ['src/java']

Antマイグレーション例 GradleはAntと非常に緊密な統合を行うことができ、ビルド中にAntビルドファイルを直接インポート可能なスクリプトとして扱う。以下は単純化したAntターゲットをGradleタスクに組み込んだ例である:

build.xml <project> <target name="ant.target"> <echo message="Running ant.target!"/> </target> </project>

build.gradle ant.importBuild 'build.xml'

gradle ant.targetを実行することで以下を得る:

> gradle ant.target :ant.target [ant:echo] Running ant.target!

BUILD SUCCESSFUL

関連項目

脚注

参考文献

外部リンク

Gradleフォーラム 過去バージョン ユーザーガイド Chapter 26. Standard Gradle plugins - Gradleで始める標準プラグイン Chapter 44. Java Quickstart - Javaクイックスタートガイド Chapter 52. Groovy Quickstart - Groovyクイックスタートガイド Chapter 19. Using Ant from Gradle - Ant使用例 Gradle Inc. - 商用サポート用 - Gradle創設者のHans Dockterによるサンフランシスコ JUGにおけるGradleプレゼンテーション。 - GradleとGradlewareの歴史・動機・チャレンジについての、Gradle創設者であるHans DockterとAleksandar Gargentaに対するインタビュー。 Gradle - Domain Specific Language Based Build Tool - Gradleプレゼンテーション gradle.GettingStarted - SchuchertによるGradle入門 Prototypes for gradle project

カテゴリ:2007年のソフトウェア