Incluyendo sub-proyectos utilizando un comodín en el archivo de configuración de un Gradle

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

  •  21-09-2019
  •  | 
  •  

Pregunta

En Gradle debe definir sub-proyectos que se construirán en un archivo 'settings.gradle'. Para construir tres proyectos niño, que haría algo como esto:

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

El problema que estoy teniendo es que tengo un buen número de proyectos a incluir. ¿Hay una manera de utilizar un comodín en esta definición? Estoy buscando algo como esto:

include "*"

Esto por supuesto no funciona. Esto sería mucho más fácil trabajar con ya que tengo muchos sub-proyectos a incluir. ¿Hay una manera de incluir automáticamente los subdirectorios como proyectos?

¿Fue útil?

Solución

¿Se puede hacer algo como:

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

Para incluir "Niño1" hasta "Niño10"?

Obviamente, que había necesidad de cambiar el cobro revertido a algún tipo de exploración de carpetas, pero esa prueba rápida funciona, entonces la exploración tiene una buena oportunidad

Otros consejos

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

¿El truco para mí

Los siguientes soportes de código jerárquica de profundidad arbitraria:

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top