
ザクっと理解するマルチプロジェクトのビルド – Gradle Android Kotlin
Gradleシリーズです。
なんとなく使っているGradleをザクっと理解できるように書いています。
前回はGradle ディレクトリをザクっとご紹介しました。
今回はマルチプロジェクトのビルドについてご紹介します。
マルチプロジェクトのビルドとは
プロジェクトの規模によっては、プロジェクトをより小さな単位に分割します。
これをモジュールと呼び、モジュール間を繋ぎ合わせることで1つのプロジェクトとしてビルドします。
Gradleは、これをマルチプロジェクトのビルド(multi-project builds)でサポートしています。

マルチプロジェクトの構成

※Multi-Project Build Basics Multi-Project structureより
こちらは2つのサブプロジェクトを含む、マルチプロジェクトの構成を表しています。
マルチプロジェクトは、1つのルートプロジェクトと複数のサブプロジェクトで構成されます。
ディレクトリ構成は下記のようになります。
├── .gradle
│ └── ⋮
├── gradle
│ ├── libs.version.toml
│ └── wrapper
├── gradlew
├── gradlew.bat
├── settings.gradle.kts // 1
├── sub-project-1
│ └── build.gradle.kts // 2
└── sub-project-2
└── build.gradle.kts // 2
1. 全てのサブプロジェクトを定義する設定ファイル
2. 各サブプロジェクト用のビルドファイル
マルチプロジェクトの標準
マルチプロジェクトのビルド構成には、buildSrcを使うマルチプロジェクトビルドとCompositeビルドを使用する2つの方法があります。
・マルチプロジェクトビルド
GradleプロジェクトのルートにサブプロジェクトのようなディレクトリであるbuildSrcがあり、すべてのビルドロジックを含みます。
・Compositeビルド
ほかのビルドを含んだビルドです。
Gradleプロジェクトのルートにビルドディレクトリであるbuild-logicがあり、すべてのビルドロジックを含みます。

※Multi-Project Build Basics Multi-Project structure Multi-Project standardsより
ちなみにnowinandroidでは、Compositeビルドを使用しています。
おわりに
次回はビルドのライフサイクルについて解説します。
ご要望等がありましたらお気軽にコメントまでお願いします。
コメント