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) 绑定到生成输出的 task。将其用作类路径的一部分或另一个 task 的输入,以确保在使用之前创建输出。注意:要定义输出文件夹的路径,请使用 SourceDirectorySet.getDestinationDirectory()

destinationDirectory

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

filter

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

srcDirs

构成此集合的源目录。

方法

方法描述
compiledBy(taskProvider, mapping)

定义负责处理源的 task。

source(source)

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

srcDir(srcPath)

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

srcDirs(srcPaths)

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

脚本块

无脚本块

属性详情

Provider<Directory> classesDirectory

目录属性,通过 SourceDirectorySet.compiledBy(org.gradle.api.tasks.TaskProvider, java.util.function.Function) 绑定到生成输出的 task。将其用作类路径的一部分或另一个 task 的输入,以确保在使用之前创建输出。注意:要定义输出文件夹的路径,请使用 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>(或这些方法的任何重载)通过模式进行过滤,仅过滤 DirectoryTrees 返回的 文件,并且不过滤源目录树集本身。此结果应与 SourceDirectorySet.getSrcDirTrees() 一致。

不过滤不存在的源目录。

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

方法详情

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

定义负责处理源的 task。

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

SourceDirectorySet srcDir(Object srcPath)

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

SourceDirectorySet srcDirs(Object... srcPaths)

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