Table of Contents
API Documentation: | SourceSetOutput |
---|
A collection of all output directories (compiled classes, processed resources, etc.) - notice that SourceSetOutput
extends FileCollection
.
Provides output information of the source set. Allows configuring the default output dirs and specify additional output dirs.
apply plugin: 'java' sourceSets { main { //if you truly want to override the defaults: output.resourcesDir = file('out/bin') // Compiled Java classes should use this directory java.outputDir = file('out/bin') } }
Working with generated resources.
In general, we recommend generating resources into folders different than the regular resourcesDir and classesDirs. Usually, it makes the build easier to understand and maintain. Also it gives some additional benefits because other Gradle plugins can take advantage of the output dirs 'registered' in the SourceSet.output. For example: Java plugin will use those dirs in calculating class paths and for jarring the content; IDEA and Eclipse plugins will put those folders on relevant classpath.
An example how to work with generated resources:
apply plugin: 'java' def generatedResources = "$buildDir/generated-resources/main" sourceSets { main { //let's register an output folder on the main SourceSet: output.dir(generatedResources, builtBy: 'generateMyResources') //it is now a part of the 'main' classpath and will be a part of the jar } } //a task that generates the resources: task generateMyResources { doLast { def generated = new File(generatedResources, "myGeneratedResource.properties") generated.text = "message=Stay happy!" } } //Java plugin task 'classes' and 'testClasses' will automatically depend on relevant tasks registered with 'builtBy' //Eclipse/IDEA plugins will automatically depend on 'generateMyResources' //because the output dir was registered with 'builtBy' information apply plugin: 'idea'; apply plugin: 'eclipse'
Find more information in SourceSetOutput.dir(java.util.Map, java.lang.Object)
and SourceSetOutput.getDirs()
Property | Description |
classesDirs | The directories containing compiled classes. |
resourcesDir | The output directory for resources |
Method | Description |
dir(dir) | Registers an extra output dir. Useful for generated resources. |
dir(options, dir) | Registers an extra output dir and the builtBy information. Useful for generated resources. |
getDirs() | Returns all dirs registered with #dir method.
Each file is resolved as |
The directories containing compiled classes.
- Default with
java
plugin: - a file collection of each
${project.buildDir}
/classes/${sourceDirectorySet.name}
/${sourceSet.name}
The output directory for resources
See example at SourceSetOutput
- Default with
java
plugin: ${project.buildDir}
/classes/${sourceSet.name}
Registers an extra output dir and the builtBy information. Useful for generated resources.
See example at SourceSetOutput
Returns all dirs registered with #dir method.
Each file is resolved as Project.file(java.lang.Object)
See example at SourceSetOutput