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?

War es hilfreich?

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
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top