Compreso sottoprogetti utilizzando un carattere jolly in un file di impostazioni Gradle

StackOverflow https://stackoverflow.com/questions/2297032

  •  21-09-2019
  •  | 
  •  

Domanda

In Gradle è necessario definire sottoprogetti per essere costruito in un file 'settings.gradle'. Per costruire tre progetti figlio, si potrebbe fare qualcosa di simile:

include "child1", "child2", "child3"

Il problema che sto avendo è che ho un bel paio di progetti da includere. C'è un modo per utilizzare un carattere jolly in questa definizione? Sto cercando qualcosa di simile:

include "*"

Che ovviamente non funziona. Questo sarebbe molto più facile lavorare con poiché ho molti sottoprogetti da includere. C'è un modo per includere automaticamente le sottodirectory come progetti?

È stato utile?

Soluzione

Si può fare qualcosa di simile:

include (1..10).collect { "Child$it" }

Per includere "Child1" fino a "Child10"?

Ovviamente, avresti bisogno di cambiare la colletta a una sorta di scansione della cartella, ma che test rapido funziona allora la scansione ha una buona probabilità

Altri suggerimenti

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])

Ha fatto il trucco per me

Il codice seguente supporta gerarchica di profondità arbitraria:

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top