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

Gradle
開発元 Hans Dockter, Adam Murdoch, Szczepan Faber, Peter Niederwieser, Luke Daley, Rene Gröschke, Daz DeBoer, Steve Appling
初版 2007年 (17年前) (2007)
最新版
8.6[1] / 2024年2月2日 (2か月前) (2024-02-02)
リポジトリ ウィキデータを編集
プログラミング
言語
Java, Groovy, Kotlin
対応OS クロスプラットフォーム
サポート状況 開発中
種別 ビルドツール
ライセンス Apache License 2.0
公式サイト gradle.org
テンプレートを表示

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

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

Javaプロジェクトの例 編集

Javaソースとリソース用にMavenディレクトリ構造が使われているケースを仮定する。Mavenディレクトリ構造はそれぞれsrc/main/javasrc/main/resourcessrc/test/javasrc/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

関連項目 編集

脚注 編集

  1. ^ Releases”. Gradle.org. 2024年2月25日閲覧。
  2. ^ Getting Started With Gradle”. Petri Kainulainen. 2016年3月26日閲覧。
  3. ^ Introducing Incremental Build Support”. 2019年4月30日閲覧。
  4. ^ Getting Started · Building Java Projects with Gradle”. 2016年3月26日閲覧。

参考文献 編集

  • 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. http://oreilly.com/catalog/0636920019909/ 
  • Ikkink, Hubert (November 2012). Gradle Effective Implementation Guide (First ed.). Packt Publishing英語版. p. 382. ISBN 978-1849518109. http://www.packtpub.com/gradle-effective-implementation-guide/book 
  • Berglund, Tim; McCullough, Matthew (May 2013). Gradle DSLs (First ed.). オライリーメディア. pp. 50 est.. ISBN 978-1-4493-0467-6. http://oreilly.com/catalog/0636920019923/ 
  • Muschko, Benjamin (Fall 2013). Gradle In Action (First ed.). Manning Publications英語版. p. 390. ISBN 9781617291302 

外部リンク 編集