Y compris les sous-projets en utilisant un caractère générique dans un fichier de paramètres Gradle

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

  •  21-09-2019
  •  | 
  •  

Question

Dans Gradle vous devez définir des sous-projets à construire dans un fichier « settings.gradle ». Pour construire trois projets enfants, vous feriez quelque chose comme ceci:

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

Le problème que je vais avoir est que j'ai assez peu de projets à inclure. Est-il possible d'utiliser un joker dans cette définition? Je cherche quelque chose comme ceci:

include "*"

Ce bien sûr ne fonctionne pas. Ce serait beaucoup plus facile de travailler avec depuis que j'ai beaucoup sous-projets à inclure. Y at-il un moyen d'inclure automatiquement les sous-répertoires comme des projets?

Était-ce utile?

La solution

Pouvez-vous faire quelque chose comme:

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

Pour inclure "Enfant1" jusqu'à "enfant10"?

De toute évidence, vous aurez besoin de changer la collecte à une sorte de balayage de dossier, mais ce test rapide fonctionne alors le scan a une bonne chance

Autres conseils

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

Est-ce que le truc pour moi

Le code suivant prend en charge hiérarchique de profondeur arbitraire:

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top