如何访问Gradle复合版本中所有包含的版本的源目录的集合?

问题描述

我有一个带有复合构建的gradle项目。我必须获取要在jacoco仪器中使用的源文件集合。是否可以获取所有包含的内部版本的源目录。

settings.gradle

rootProject.name = 'my-composite'

includeBuild 'my-app'
includeBuild 'my-utils'

我当前正在使用文件方法在build.gradle中获取集合

project.ext.files1 = 
filetree("C:/my-composite/my-app/src").matching {
    include '*.java'
}

project.ext.files2 = 
filetree("C:/my-composite/my-utils/src").matching {
    include '*.java'
}

project.ext.allFiles = project.ext.files1.plus(project.ext.files2) 

我们可以使用 gradle.includedBuild('my-app')动态生成源列表吗? (要么) 有什么方法可以使用任务返回每个inculdede版本的源目录? 还是有其他方法可以做到?

解决方法

应该能够:

fileTree(gradle.includedBuild("my-app").projectDir.resolve("src")).matching {
    include("*.java")
}