| API 文档 | SourceSetOutput |
|---|
所有输出目录(已编译的类、已处理的资源等)的集合——请注意 SourceSetOutput 扩展了 FileCollection。
提供源集的输出信息。允许配置默认输出目录并指定额外的输出目录。
plugins {
id 'java'
}
sourceSets {
main {
//if you truly want to override the defaults:
output.resourcesDir = file('out/bin')
// Compiled Java classes should use this directory
java.destinationDirectory.set(file('out/bin'))
}
}
使用生成资源。
通常,我们建议将生成资源放置在与常规 resourcesDir 和 classesDirs 不同的文件夹中。这通常使构建更易于理解和维护。此外,它还提供了一些额外的好处,因为其他 Gradle 插件可以利用 SourceSet.output 中“注册”的输出目录。例如:Java 插件将在计算类路径和打包内容时使用这些目录;IDEA 和 Eclipse 插件将把这些文件夹放在相关的类路径上。
一个使用生成资源的示例
plugins {
id 'java'
}
def generateResourcesTask = tasks.register("generate-resources", GenerateResourcesTask) {
resourcesDir.set(layout.buildDirectory.dir("generated-resources/main"))
}
// Include all outputs of the `generate-resources` task as outputs of the main sourceSet.
sourceSets {
main {
output.dir(generateResourcesTask)
}
}
abstract class GenerateResourcesTask extends DefaultTask {
@OutputDirectory
abstract DirectoryProperty getResourcesDir()
@TaskAction
def generateResources() {
def generated = resourcesDir.file("myGeneratedResource.properties").get().asFile
generated.text = "message=Stay happy!"
}
}
更多信息请参见 SourceSetOutput.dir(java.lang.Object) 和 SourceSetOutput.getDirs()
| 属性 | 描述 |
classesDirs | 包含已编译类的目录。 |
resourcesDir | 资源的输出目录 |
| 方法 | 描述 |
dir(dir) | 注册一个额外的输出目录。对生成资源很有用。 |
dir(options, dir) | 注册一个额外的输出目录和 builtBy 信息。对生成资源很有用。 |
getDirs() | 返回通过 #dir 方法注册的所有目录。每个文件都解析为 |
FileCollection classesDirs (只读)
包含已编译类的目录。
- 默认与
java插件一起使用 - 每个
的文件集合${project.layout.buildDirectory}/classes/${sourceDirectorySet.name}/${sourceSet.name}
File resourcesDir
资源的输出目录
请参阅 SourceSetOutput 的示例
- 默认与
java插件一起使用 ${project.layout.buildDirectory}/classes/${sourceSet.name}
注册一个额外的输出目录和 builtBy 信息。对生成资源很有用。
请参阅 SourceSetOutput 的示例
FileCollection getDirs()
返回通过 #dir 方法注册的所有目录。每个文件都解析为 Project.file(java.lang.Object)
请参阅 SourceSetOutput 的示例