
ザクっと理解するビルドのライフサイクル – Gradle Android Kotlin
Gradleシリーズです。
なんとなく使っているGradleをザクっと理解できるように書いています。
前回はマルチプロジェクトのビルドをザクっとご紹介しました。
今回はビルドのライフサイクルについてご紹介します。
ビルドのライフサイクルとは
初期化(Initialization)、構成(Configuration)、実行(Execution)の3つのフェーズがあり、構成フェーズではタスクグラフの作成をしています。
タスクグラフ
Gradleは、タスク実行の前にタスクグラフを作成します。
下の図は抽象例と具体例であり、矢印は依存先から依存元に伸びています。

※Build Lifecycle Task Graphsより
ビルドフェーズ
ビルドには3つのフェーズがあり、Gradleはこれらを順に実行します。

※Build Lifecycle Build Phasesより
1. 初期化(Initialization)
・settings.gradle(.kts)を検出
・Settingsインスタンスを生成
・ビルドを構成するプロジェクト(と含まれるビルド)を決定
・プロジェクトごとにProjectインスタンスを生成
2. 構成(Configuration)
・ビルドを構成するプロジェクトごとのビルドスクリプトであるbuild.gradle(.kts)を読み込み
・タスクグラフの作成
3. 実行(Execution)
・選択されたタスクの実行スケジュールの作成と実行
・依存関係のあるタスクの実行順番の決定
・タスクの並行実行

※Build Lifecycle Build Phasesより
おわりに
次回はsettings.gradle(.kts)の書き方について解説します。
ご要望等がありましたらお気軽にコメントまでお願いします。
コメント