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
configure
mé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
allprojects
vs.subprojects
depende 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,subprojects
es mejor queallprojects
mientras dé los resultados esperados.fuente