Pergunta

No gradle, você precisa definir subprojetos para serem incorporados em um arquivo 'Settings.gradle'. Para construir três projetos infantis, você faria algo assim:

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

O problema que estou tendo é que tenho alguns projetos para incluir. Existe uma maneira de usar um curinga nessa definição? Estou procurando algo assim:

include "*"

É claro que isso não funciona. Isso seria muito mais fácil de trabalhar, pois tenho muitos subprojetos para incluir. Existe uma maneira de incluir automaticamente os subdiretos como projetos?

Foi útil?

Solução

Você pode fazer algo como:

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

Para incluir "Child1" até "Child10"?

Obviamente, você precisaria alterar a coleta para algum tipo de digitalização de pastas, mas que o teste rápido funciona, então a verificação tem uma boa chance

Outras dicas

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

Fez o truque para mim

O código a seguir suporta hierárquico da profundidade arbitrária:

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top