回答:
マルチプロジェクトのGradleビルドでは、rootProjectとサブプロジェクトがあります。両方の組み合わせがすべてのプロジェクトです。rootProjectは、ビルドの開始点です。一般的なパターンは、rootProjectにコードがなく、サブプロジェクトがJavaプロジェクトであるというものです。その場合、Javaプラグインをサブプロジェクトにのみ適用します。
subprojects {
apply plugin: 'java'
}
これは、サブモジュールをビルドするだけのMaven集約pomプロジェクトと同等です。
2つの構文については、まったく同じことを行います。最初のものはただよく見えます。
configure
オブジェクトのカスタムサブセットを構成する場合、ライアンの答えに加えて、この方法が重要になります。たとえばconfigure([project(":foo"), project(":bar")]) { ... }
またはconfigure(tasks.matching { it.name.contains("foo") }) { ... }
。
使用する場合はallprojects
対をsubprojects
状況に依存します。多くの場合、両方を使用します。たとえばsubprojects
、多くのビルドではルートプロジェクトにコードが含まれていないため、Javaプラグインなどのコード関連プラグインは通常に適用されます。一方、EclipseおよびIDEAプラグインは、通常に適用されallprojects
ます。疑問がある場合は、例やその他のビルドや実験を確認してください。一般的な目標は、無関係な構成を回避することです。その意味で、期待される結果が得られる限り、subprojects
より良いですallprojects
。