Gradle
開発元 | Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling |
---|---|
初版 | 2007年 |
最新版 |
7.4.1[1]
/ 2022年3月9日 |
リポジトリ | |
プログラミング 言語 | Java, Groovy, Kotlin |
対応OS | クロスプラットフォーム |
サポート状況 | 開発中 |
種別 | ビルドツール |
ライセンス | Apache License 2.0 |
公式サイト |
gradle |
GradleはApache AntやApache Mavenのコンセプトに基づくオープンソースビルド自動化システムであり、プロジェクト設定の宣言にはApache Mavenが利用するXML形式ではなくGroovyベース、もしくはKotlin Scriptベースのドメイン固有言語 (DSL) を採用している[2]。Gradleはタスクの起動順序の決定に有向非巡回グラフ(英: Directed Acyclic Graph、DAG)を利用する。
Gradleは非常に大きくなる可能性のあるマルチプロジェクトのビルド用に設計されており、ビルドツリーのどの部分が最新であるかをインテリジェントに決定する増分ビルドをサポートする。[3]このため、最新の増分ビルド部分に依存するタスクを再実行する必要は一切ない。
初期のプラグインはJava、Groovy、およびScalaの開発と配備に第一に焦点を当てられている[4]が、ロードマップにはその他の言語やプロジェクトに対するワークフローが示されている。
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
関連項目
脚注
- ^ “Releases”. Gradle.org. 2022年3月28日閲覧。
- ^ “Getting Started With Gradle”. Petri Kainulainen. 26 March 2016閲覧。
- ^ “Introducing Incremental Build Support”. 2019年4月30日閲覧。
- ^ “Getting Started · Building Java Projects with Gradle”. 26 March 2016閲覧。
参考文献
- Berglund, Tim; McCullough, Matthew (July 2011). Building and Testing with Gradle. Foreword by Hans Dockter (First ed.). オライリーメディア. p. 116. ISBN 978-1-4493-0463-8
- Ikkink, Hubert (November 2012). Gradle Effective Implementation Guide (First ed.). Packt Publishing. p. 382. ISBN 978-1849518109
- Berglund, Tim; McCullough, Matthew (May 2013). Gradle DSLs (First ed.). オライリーメディア. pp. 50 est.. ISBN 978-1-4493-0467-6
- Muschko, Benjamin (Fall 2013). Gradle In Action (First ed.). Manning Publications. p. 390. ISBN 9781617291302
外部リンク
- 公式ウェブサイト
- 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. - 商用サポート用
- Rocking the Gradle with Hans Dockter - YouTube - Gradle創設者のHans Dockterによるサンフランシスコ JUGにおけるGradleプレゼンテーション。
- Breaking Open: Gradle - YouTube - GradleとGradlewareの歴史・動機・チャレンジについての、Gradle創設者であるHans DockterとAleksandar Gargentaに対するインタビュー。
- Gradle - Domain Specific Language Based Build Tool - Gradleプレゼンテーション
- gradle.GettingStarted - SchuchertによるGradle入門
- Prototypes for gradle project