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.

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'))
  }
}
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:

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!"
  }
}
Find more information in dir and getDirs

Functions

Link copied to clipboard
abstract fun addToAntBuilder(builder: Any, nodeName: String): Any
abstract fun addToAntBuilder(builder: Any, nodeName: String, type: FileCollection.AntType)
Link copied to clipboard
abstract fun contains(file: File): Boolean
Link copied to clipboard
abstract fun dir(dir: Any)
Registers an extra output dir.
abstract fun dir(options: Map<String, Any>, dir: Any)
Registers an extra output dir and the builtBy information.
Link copied to clipboard
inline fun SourceSetOutput.dir(dir: Any, vararg options: Pair<String, Any?>)

Kotlin extension function for org.gradle.api.tasks.SourceSetOutput.dir.

Link copied to clipboard
abstract fun filter(filterClosure: Closure): FileCollection
Link copied to clipboard
open fun forEach(action: Consumer<in T>)
Link copied to clipboard
abstract fun getAsFileTree(): FileTree
Link copied to clipboard
abstract fun getAsPath(): String
Link copied to clipboard
Link copied to clipboard
Returns the directories containing compiled classes.
Link copied to clipboard
abstract fun getDirs(): FileCollection
Returns all dirs registered with #dir method.
Link copied to clipboard
Link copied to clipboard
abstract fun getFiles(): Set<File>
Link copied to clipboard
Returns the directories containing generated source files (e.g.
Link copied to clipboard
@Nullable
abstract fun getResourcesDir(): File
Returns the output directory for resources See example at SourceSetOutput
Link copied to clipboard
abstract fun getSingleFile(): File
Link copied to clipboard
abstract fun isEmpty(): Boolean
Link copied to clipboard
abstract fun iterator(): Iterator<T>
Link copied to clipboard
abstract fun minus(collection: FileCollection): FileCollection
Link copied to clipboard
abstract fun plus(collection: FileCollection): FileCollection
Link copied to clipboard
abstract fun setResourcesDir(resourcesDir: File)
abstract fun setResourcesDir(resourcesDir: Any)
Sets the output directory for resources See example at SourceSetOutput
Link copied to clipboard