Kann mir jemand sagen, was genau der Unterschied zwischen dem Abschnitt "allprojects" und dem Abschnitt "subprojects" ist? Nur das übergeordnete Verzeichnis? Verwendet jemand beides? Wenn ja, haben Sie allgemeine Regeln, die bestimmen, was normalerweise in jedem enthalten ist?
Verwandte Frage: Was ist der Unterschied zwischen den beiden Syntaxen (wirklich für alle Projekte UND Teilprojekte):
subprojects { ...
}
und
configure(subprojects) { ...
}
Wann würdest du eins über das andere?
Neben Ryans Antwort wird die
configure
Methode wichtig, wenn Sie benutzerdefinierte Teilmengen von Objekten konfigurieren möchten. Zum Beispielconfigure([project(":foo"), project(":bar")]) { ... }
oderconfigure(tasks.matching { it.name.contains("foo") }) { ... }
.Wann zu verwenden
allprojects
vs.subprojects
hängt von den Umständen ab. Oft werden Sie beide verwenden. Beispielsweise werden Code-bezogene Plugins wie das Java-Plugin normalerweise angewendetsubprojects
, da das Root-Projekt in vielen Builds keinen Code enthält. Die Eclipse- und IDEA-Plugins werden normalerweise angewendetallprojects
. Schauen Sie sich im Zweifelsfall Beispiele und andere Builds an und / oder experimentieren Sie. Das allgemeine Ziel ist es, irrelevante Konfigurationen zu vermeiden. In diesem Sinnesubprojects
ist besser alsallprojects
solange es die erwarteten Ergebnisse liefert.quelle