代码之家  ›  专栏  ›  技术社区  ›  Chris Dail

在渐变设置文件中包含使用通配符的子项目

  •  3
  • Chris Dail  · 技术社区  · 14 年前

    在Gradle中,您需要定义要在“settings.gradle”文件中构建的子项目。要构建三个子项目,您可以这样做:

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

    我的问题是我有很多项目要包括。在这个定义中有没有使用通配符的方法?我在找这样的东西:

    include "*"
    

    那当然不行。因为我有许多子项目要包含,所以这将更容易处理。有没有一种方法可以自动将子目录包括为项目?

    3 回复  |  直到 14 年前
        1
  •  1
  •   tim_yates    14 年前

    你能做点什么吗?

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

    包括“child1”到“child10”?

    显然,您需要将collect更改为某种文件夹扫描,但是如果快速测试有效,那么扫描就有很好的机会

        2
  •  4
  •   joemat    12 年前

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

    给我耍了把戏

        3
  •  1
  •   ocroquette    8 年前

    以下代码支持任意深度的层次结构:

    rootDir.eachFileRecurse { f ->
        if ( f.name == "build.gradle" ) {
            String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
            String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
            include projectName
        }
    }