回答:
マルチプロジェクトの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。