今回のテーマは「gradleでマルチプロジェクトをビルド」です。
そもそも、マルチプロジェクトとは何か?、ですが、複数のプロジェクトを含むツリー構造のプロジェクトを指します。
例えば、
rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトa1
|— サブプロジェクトB
|— ライブラリ
とか
|— rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトB
|— ライブラリ`
みたいな構造のプロジェクトです。
マルチプロジェクトはプロジェクトの配置とsettings.gradleの設定次第で、
いちどに複数のプロジェクトをビルドしたり、サブプロジェクトのみをビルドしたりすることができます。
マルチプロジェクトにどのプロジェクトを含むかという情報は、
ルートプロジェクト直下のsettings.gradleに記述します。
1. サブプロジェクトAとサブプロジェクトBを含む設定の例。
rootプロジェクト
|— settings.gradle
|— サブプロジェクトA
|— サブプロジェクトB
include 'サブプロジェクトA', 'サブプロジェクトB' もしくは include 'サブプロジェクトA' include 'サブプロジェクトB'
これでサブプロジェクトAとサブプロジェクトBがrootプロジェクトのサブプロジェクトとして認識されます。
2. サブプロジェクトAと、サブプロジェクトAのサブプロジェクトa1を含む設定の例。
rootプロジェクト
|— settings.gradle
|— サブプロジェクトA
|— サブプロジェクトa1
include 'サブプロジェクトA:サブプロジェクトa1'
「:」はパスの区切り文字を表します。(ディレクトリパスの¥と同じですね)
これだと、まるでサブプロジェクトa1しか含まないように見えるかもしれませんが、
末端のプロジェクトをincludeすると、rootから末端の間のプロジェクトが全てincludeされるのです。
もちろん、
include 'サブプロジェクトA' include 'サブプロジェクトA:サブプロジェクトa1'
のように書いてもOKです。
サブプロジェクトA単体でビルドするときに、サブプロジェクトa1のビルドも行うためには、サブプロジェクトAの下にもsettings.gradleをおいてあげる必要があります。
rootプロジェクト
|— settings.gradle
|— サブプロジェクトA
|— settings.gradle
|— サブプロジェクトa1