Gradle によるビルドは、少なくとも1つ以上の「プロジェクト」から構成されます。
プロジェクトは1つ以上の「タスク」を含み、タスク単位でビルド処理を実行できるようになっています。
各プロジェクトには build.gradle
というビルドスクリプトを配置し、その中でタスクを定義していきます。
ビルド構成
+-- Project (build.gradle)
| +-- Task
| | +-- Action
| | +-- Action
| +-- Task
| +-- Action
| +-- Action
+-- Project (build.gradle)
+-- Project (build.gradle)
+-- ...
Gradle にはプラグインの仕組みがあり、複数のプロジェクトで再利用可能なタスクをプラグインの形で配布することができるようになっています。 インターネット上で公開されているプラグインを利用すれば、自分のプロジェクトに便利なタスクを簡単に組み込んでいくことができます(静的解析用のタスクや、デプロイ用のタスクなどを簡単に追加できる)。 タスク間に依存関係 (Dependency) を設定しておくことで、あるタスクを実行する前に先行して実行しなければいけないタスクを自動的に実行するように制御できます。
各タスクは、実行ブロックの単位である「アクション」を1つ以上含んでいます。 タスクを実行すると、それらのアクションが順番に実行されていくことになります。
プロジェクト、タスク、アクションは、Gradle の処理系内部では、それぞれ Project
オブジェクト、Task
オブジェクト、Action
オブジェクトとしてインスタンス化されます。
ビルドスクリプトを記述していく上で、このようなオブジェクトが作成されていることを意識することが必要になってきます。