En una construcción de gradle multiproyecto, ¿alguien puede decirme cuál es exactamente la diferencia entre la sección "todos los proyectos" y la "subproyectos"? ¿Solo el directorio principal? ¿Alguien usa ambos? Si es así, ¿tiene reglas generales que determinen lo que normalmente se coloca en cada una?
Pregunta relacionada: ¿cuál es la diferencia entre las dos sintaxis (realmente para todos los proyectos Y subproyectos):
subprojects { ...
}
y
configure(subprojects) { ...
}
¿Cuándo se uno sobre el otro?

Agregando a la respuesta de Ryan, el
configuremétodo se vuelve importante cuando desea configurar subconjuntos personalizados de objetos. Por ejemploconfigure([project(":foo"), project(":bar")]) { ... }oconfigure(tasks.matching { it.name.contains("foo") }) { ... }.Cuándo usar
allprojectsvs.subprojectsdepende de las circunstancias. A menudo usarás ambos. Por ejemplo, los complementos relacionados con el código, como el complemento de Java, generalmente se aplicansubprojects, porque en muchas compilaciones el proyecto raíz no contiene ningún código. Los complementos de Eclipse e IDEA, por otro lado, generalmente se aplican aallprojects. Si tiene dudas, mire ejemplos y otras compilaciones y / o experimentos. El objetivo general es evitar configuraciones irrelevantes. En ese sentido,subprojectses mejor queallprojectsmientras dé los resultados esperados.fuente