Включение подпроектов с использованием подстановочного знака в файле настроек Gradle - PullRequest
3 голосов
/ 19 февраля 2010

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

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

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

include "*"

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

Ответы [ 3 ]

4 голосов
/ 09 октября 2012

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

Трюк для меня

1 голос
/ 08 февраля 2016

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

rootDir.eachFileRecurse { f ->
    if ( f.name == "build.gradle" ) {
        String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
        String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
        include projectName
    }
}
1 голос
/ 19 февраля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...