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

通过 SourceDirectorySet.compiledBy(org.gradle.api.tasks.TaskProvider, java.util.function.Function) 绑定到生成输出的任务的目录属性。将其用作类路径的一部分或另一个任务的输入,以确保在使用之前创建输出。注意:要定义输出文件夹的路径,请使用 SourceDirectorySet.getDestinationDirectory()

destinationDirectory

配置将编译后的类组装到其中的目录。

filter

用于从源目录中选择源的过滤器。这些过滤模式在此源目录集的包含和排除模式之后应用。通常,过滤模式用于将内容限制为特定类型的文件,例如 *.java

srcDirs

构成此集合的源目录。

方法

方法描述
compiledBy(taskProvider, mapping)

定义负责处理源的任务。

source(source)

将给定的源添加到此集合。

srcDir(srcPath)

将给定的源目录添加到此集合。给定的目录无需存在。不存在的目录将被忽略。

srcDirs(srcPaths)

将给定的源目录添加到此集合。给定的目录无需存在。不存在的目录将被忽略。

脚本块

无脚本块

属性详情

Provider<Directory> classesDirectory

通过 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

Set<File> srcDirs

构成此集合的源目录。

请注意,使用 <UNHANDLED-LINK>#exclude(Spec)</UNHANDLED-LINK><UNHANDLED-LINK>#include(Spec)</UNHANDLED-LINK>(或这些方法的任何重载)通过模式进行过滤,只会过滤此方法返回的 DirectoryTree 内的文件,而不会过滤源目录树集合本身。此结果应与 SourceDirectorySet.getSrcDirTrees() 一致。

不过滤不存在的源目录。

使用 java-base 插件时的默认值
src/${sourceSet.name}/${sourceDirectorySet.name}

方法详情

void compiledBy(TaskProvider<T> taskProvider, Function<T, DirectoryProperty> mapping)

定义负责处理源的任务。

将给定的源添加到此集合。

SourceDirectorySet srcDir(Object srcPath)

将给定的源目录添加到此集合。给定的目录无需存在。不存在的目录将被忽略。

SourceDirectorySet srcDirs(Object... srcPaths)

将给定的源目录添加到此集合。给定的目录无需存在。不存在的目录将被忽略。