| API 文档 | SourceDirectorySet |
|---|
SourceDirectorySet 表示一组由源目录集以及相关的包含和排除模式组成的源文件。
SourceDirectorySet 扩展了 FileTree。文件树的内容表示此集合的源文件,以层次结构排列。文件树是实时更新的,反映了源目录及其内容的更改。
您可以使用 ObjectFactory.sourceDirectorySet(java.lang.String, java.lang.String) 方法创建 SourceDirectorySet 的实例。
您可以使用模式通过 <UNHANDLED-LINK>#include(Spec)</UNHANDLED-LINK> 和 <UNHANDLED-LINK>#include(Spec)</UNHANDLED-LINK>(或这些方法的任何重载)过滤此集中可获取的文件。包含的源目录集本身不被过滤。
| 属性 | 描述 |
classesDirectory | 通过 |
destinationDirectory | 配置用于组装已编译类的目录。 |
filter | 用于从源目录中选择源的过滤器。这些过滤模式在源目录集的包含和排除模式之后应用。通常,过滤模式用于将内容限制为某些类型的文件,例如 |
srcDirs | 构成此集合的源目录。 |
| 方法 | 描述 |
compiledBy(taskProvider, mapping) | 定义负责处理源的任务。 |
source(source) | 将给定源添加到此集合。 |
srcDir(srcPath) | 将给定源目录添加到此集合。给定目录不需要存在。不存在的目录将被忽略。 |
srcDirs(srcPaths) | 将给定源目录添加到此集合。给定目录不需要存在。不存在的目录将被忽略。 |
通过 SourceDirectorySet.compiledBy(org.gradle.api.tasks.TaskProvider, java.util.function.Function) 绑定到生成输出的任务的目录属性。将其作为类路径的一部分或作为另一个任务的输入,以确保在使用输出之前创建它。注意:要定义输出文件夹的路径,请使用 SourceDirectorySet.getDestinationDirectory()
- 默认使用
java-base插件 ${project.layout.buildDirectory}/classes/${sourceDirectorySet.name}/${sourceSet.name}
DirectoryProperty destinationDirectory
配置用于组装已编译类的目录。
- 默认使用
java-base插件 ${project.layout.buildDirectory}/classes/${sourceDirectorySet.name}/${sourceSet.name}
PatternFilterable filter (只读)
用于从源目录中选择源的过滤器。这些过滤模式在源目录集的包含和排除模式之后应用。通常,过滤模式用于将内容限制为某些类型的文件,例如 *.java。
构成此集合的源目录。
请注意,通过 <UNHANDLED-LINK>#exclude(Spec)</UNHANDLED-LINK> 和 <UNHANDLED-LINK>#include(Spec)</UNHANDLED-LINK>(或这些方法的任何重载)使用模式进行过滤仅过滤此方法返回的 DirectoryTrees 中的文件,而不过滤源目录树集本身。此结果应与 SourceDirectorySet.getSrcDirTrees() 一致。
不过滤不存在的源目录。
- 默认使用
java-base插件 src/${sourceSet.name}/${sourceDirectorySet.name}
void compiledBy(TaskProvider<T> taskProvider, Function<T, DirectoryProperty> mapping)
TaskProvider<T>Function<T, DirectoryProperty>定义负责处理源的任务。
SourceDirectorySet source(SourceDirectorySet source)
将给定源添加到此集合。
SourceDirectorySet srcDir(Object srcPath)
将给定源目录添加到此集合。给定目录不需要存在。不存在的目录将被忽略。
SourceDirectorySet srcDirs(Object... srcPaths)
Object...将给定源目录添加到此集合。给定目录不需要存在。不存在的目录将被忽略。