有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java,包括在Gradle设置文件中使用通配符的子项目

在Gradle中,您需要在“设置”中定义要构建的子项目。格雷德尔档案。要构建三个子项目,您可以执行以下操作:

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

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

include "*"

这当然行不通。这将更容易处理,因为我有许多子项目要包含。有没有办法自动将子目录包含为项目


共 (3) 个答案

  1. # 1 楼答案

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

    你为我做了这个把戏

  2. # 2 楼答案

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

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

    你能做一些类似于:

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

    包括“Child1”到“Child10”

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