0

我正在尝试创建一个由一组文件组成的自定义 gradle 源集(不一定位于同一目录中)。每个文件可能位于一个目录中,该目录包含不应属于源目录集的其他文件。

如何创建SourceDirectorySet代表单个文件的实例?

我想使用这样的实例来java使用以下方法配置源source

sourceSets {
    custom {
        java {
            source singleFileSourceDirectorySet
            source singleFileSourceDirectorySet2
            // ...
        }
    }
}
4

1 回答 1

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
        }
    }
}
于 2019-01-30T00:33:49.040 回答