我正在尝试创建一个由一组文件组成的自定义gradle源集(不一定位于同一目录中)。每个文件都可以位于一个目录中,该目录包含不应被视为源目录集一部分的其他文件。
如何创建代表单个文件的SourceDirectorySet
实例?
sourceSets {
custom {
java {
source singleFileSourceDirectorySet
source singleFileSourceDirectorySet2
// ...
}
}
}
答案 0 :(得分:0)
为每个文件的父目录创建SourceDirectorySet
(第6行)。附加仅接受所选文件的过滤器(第7行)。
sourceSets {
custom {
java {
final java.nio.file.Path srcPath = rootDir.toPath().resolve('path/to/a/File.java')
final SourceDirectorySet sds = getObjects().sourceDirectorySet("name", "desc")
sds.srcDir(srcPath.getParent().toFile())
sds.filter { java.nio.file.Files.isSameFile(it.toPath(), srcPath) }
source sds
}
}
}