题
在摇篮你需要定义子项目要建在“settings.gradle”文件。要建立三个子项目,你会做这样的事情:
include "child1", "child2", "child3"
我遇到的问题是,我有好几个项目,包括。有没有在这个定义中使用通配符的方法吗?我正在寻找的是这样的:
include "*"
这当然不工作。这将是更容易的工作很多,因为与我有很多子项目包括。有没有办法自动包括子目录项目?
解决方案
你可以这样做:
include (1..10).collect { "Child$it" }
要包括 “Child1” 高达 “Child10”?
显然,你需要的collect更改为某种文件夹扫描的,但它是快速测试工作,然后将扫描有一个很好的机会。
其他提示
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
}
}
不隶属于 StackOverflow