Включение подпроектов с использованием подстановочного знака в файле настроек Gradle.

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

  •  21-09-2019
  •  | 
  •  

Вопрос

В Gradle вам необходимо определить подпроекты, которые будут построены в файле settings.gradle.Чтобы создать три дочерних проекта, вы должны сделать что-то вроде этого:

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

Проблема, с которой я столкнулся, заключается в том, что мне нужно включить довольно много проектов.Есть ли способ использовать подстановочный знак в этом определении?Я ищу что-то вроде этого:

include "*"

Это, конечно, не работает.С этим было бы намного проще работать, поскольку мне нужно включить много подпроектов.Есть ли способ автоматически включать подкаталоги в проекты?

Это было полезно?

Решение

Можете ли вы сделать что-то вроде:

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

Включить «Child1» до «Child10»?

Очевидно, вам нужно будет изменить сбор на какое-то сканирование папок, но если быстрый тест сработает, то у сканирования есть хорошие шансы.

Другие советы

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

Сделал трюк для меня

Следующий код поддерживает иерархию произвольной глубины:

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top