Interface SourceSetOutput
- All Superinterfaces:
AntBuilderAware
,Buildable
,FileCollection
,Iterable<File>
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 classesDir. 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
dir(java.util.Map, Object)
and getDirs()
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.file.FileCollection
FileCollection.AntType
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Registers an extra output dir.void
Registers an extra output dir and the builtBy information.Deprecated.Returns the directories containing compiled classes.getDirs()
Returns all dirs registered with #dir method.Returns the output directory for resourcesboolean
Source set uses the legacy layout (single classes directory for the entire source set).void
setClassesDir
(File classesDir) Deprecated.Set the output directory for the particularAbstractCompile
taskvoid
setClassesDir
(Object classesDir) Deprecated.Set the output directory for the particularAbstractCompile
taskvoid
setResourcesDir
(File resourcesDir) Sets the output directory for resourcesvoid
setResourcesDir
(Object resourcesDir) Sets the output directory for resourcesMethods inherited from interface org.gradle.api.Buildable
getBuildDependencies
Methods inherited from interface org.gradle.api.file.FileCollection
add, addToAntBuilder, addToAntBuilder, asType, contains, filter, filter, getAsFileTree, getAsPath, getFiles, getSingleFile, isEmpty, minus, plus, stopExecutionIfEmpty
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Method Details
-
getClassesDir
Deprecated.Returns the directory to assemble the compiled classes into.See example at
SourceSetOutput
- Returns:
- The classes dir.
-
setClassesDir
Deprecated.Set the output directory for the particularAbstractCompile
taskSets the directory to assemble the compiled classes into.See example at
SourceSetOutput
- Parameters:
classesDir
- the classes dir. Should not be null.- Since:
- 4.0
-
setClassesDir
Deprecated.Set the output directory for the particularAbstractCompile
taskSets the directory to assemble the compiled classes into.See example at
SourceSetOutput
- Parameters:
classesDir
- the classes dir. Should not be null.
-
getClassesDirs
FileCollection getClassesDirs()Returns the directories containing compiled classes.- Returns:
- The classes directories. Never returns null.
- Since:
- 4.0
-
isLegacyLayout
boolean isLegacyLayout()Source set uses the legacy layout (single classes directory for the entire source set).- Returns:
- true if the source set has a single classes directory
- Since:
- 4.0
-
getResourcesDir
File getResourcesDir()Returns the output directory for resourcesSee example at
SourceSetOutput
- Returns:
- The dir resources are copied to.
-
setResourcesDir
Sets the output directory for resourcesSee example at
SourceSetOutput
- Parameters:
resourcesDir
- the classes dir. Should not be null.- Since:
- 4.0
-
setResourcesDir
Sets the output directory for resourcesSee example at
SourceSetOutput
- Parameters:
resourcesDir
- the classes dir. Should not be null.
-
dir
Registers an extra output dir and the builtBy information. Useful for generated resources.See example at
SourceSetOutput
- Parameters:
options
- - use 'builtBy' key to configure the 'builtBy' task of the dirdir
- - will be resolved asProject.file(Object)
-
dir
Registers an extra output dir. Useful for generated resources.See example at
SourceSetOutput
- Parameters:
dir
- - will be resolved asProject.file(Object)
-
getDirs
FileCollection getDirs()Returns all dirs registered with #dir method. Each file is resolved asProject.file(Object)
See example at
SourceSetOutput
- Returns:
- a new instance of registered dirs with resolved files
-
getClassesDirs()
orSourceDirectorySet.getOutputDir()