Einschließlich Teilprojekte einen Platzhalter in einer Gradle Einstellungsdatei mit
Frage
In Gradle müssen Sie Teilprojekte definieren, in einer ‚settings.gradle‘ Datei aufgebaut werden. Um drei Kinderprojekte zu bauen, würden Sie so etwas tun:
include "child1", "child2", "child3"
Das Problem, das ich habe ist, dass ich eine ganze Reihe von Projekten einzubeziehen. Gibt es eine Möglichkeit einen Platzhalter in dieser Definition zu benutzen? Ich bin auf der Suche nach so etwas wie folgt aus:
include "*"
Das ist natürlich nicht funktioniert. Dies wäre viel einfacher, Arbeit mit, da ich viele Teilprojekte haben zu umfassen. Gibt es eine Möglichkeit, automatisch Verzeichnisse wie Projekte sind?
Lösung
Können Sie so etwas wie:
include (1..10).collect { "Child$it" }
So schließen "Child1" bis zu "Child10"?
Offensichtlich würden Sie die Collect zu einer Art Ordner Scan ändern müssen, aber es, dass Schnelltest funktioniert dann die Scan hat eine gute Chance,
Andere Tipps
include rootDir.listFiles().findAll {
it.isDirectory()
&& !( it =~ ".*/\\..*") // don't add directories starting with '.'
&& !( it =~ "^\\..*") // don't add directories starting with '.'
}.collect {
it.getName()
}.toArray(new java.lang.String[0])
hat den Trick für mich
Der folgende Code unterstützt hierarchische beliebige Tiefe:
rootDir.eachFileRecurse { f ->
if ( f.name == "build.gradle" ) {
String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
include projectName
}
}