SourceSet

API Documentation:SourceSet

A SourceSet represents a logical group of Java source and resources.

See the example below how SourceSet 'main' is accessed and how the SourceDirectorySet 'java' is configured to exclude some package from compilation.

apply plugin: 'java'

sourceSets {
  main {
    java {
      exclude 'some/unwanted/package/**'
    }
  }
}

Properties

PropertyDescription
allJava

All Java source files for this source set. This includes, for example, source which is directly compiled, and source which is indirectly compiled through joint compilation.

allSource

All source files for this source set.

compileClasspath

The classpath used to compile this source.

java

The Java source which is to be compiled by the Java compiler into the class output directory.

name

The name of this source set.

output

SourceSetOutput is a FileCollection of all output directories (compiled classes, processed resources, etc.) and it provides means to configure the default output dirs and register additional output dirs. See examples in SourceSetOutput

resources

The non-Java resources which are to be copied into the resources output directory.

runtimeClasspath

The classpath used to execute this source.

Properties added by the antlr plugin

PropertyDescription
antlr

All Antlr source for this source set.

Properties added by the groovy plugin

PropertyDescription
allGroovy

All Groovy source for this source set.

groovy

The source to be compiled by the Groovy compiler for this source set. Any Java source present in this set will be passed to the Groovy compiler for joint compilation.

Properties added by the scala plugin

PropertyDescription
allScala

All Scala source for this source set.

scala

The source to be compiled by the Scala compiler for this source set. This may contain both Java and Scala source files.

Methods

MethodDescription
compiledBy(taskPaths)

Registers a set of tasks which are responsible for compiling this source set into the classes directory. The paths are evaluated as per Task.dependsOn().

getCompileTaskName(language)

Returns the name of a compile task for this source set.

getTaskName(verb, target)

Returns the name of a task for this source set.

Script blocks

BlockDescription
java

Configures the Java source for this set.

resources

Configures the non-Java resources for this set.

Script blocks added by the antlr plugin

BlockDescription
antlr

Configures the Antlr source for this set. The given closure is used to configure the SourceDirectorySet (see AntlrSourceVirtualDirectory.getAntlr()) which contains the Antlr source.

Script blocks added by the groovy plugin

BlockDescription
groovy

Configures the Groovy source for this set.

Script blocks added by the scala plugin

BlockDescription
scala

Configures the Scala source for this set.

Property details

SourceDirectorySet allJava (read-only)

All Java source files for this source set. This includes, for example, source which is directly compiled, and source which is indirectly compiled through joint compilation.

Default with java plugin:
[java]

SourceDirectorySet allSource (read-only)

All source files for this source set.

Default with java plugin:
[java, resources]

FileCollection compileClasspath

The classpath used to compile this source.

Default with java plugin:
project.configurations.compile (or project.configurations.testCompile for the test source set).

SourceDirectorySet java (read-only)

The Java source which is to be compiled by the Java compiler into the class output directory.

Default with java plugin:
[${project.projectDir}/src/${sourceSet.name}/java]

String name (read-only)

The name of this source set.

SourceSetOutput output (read-only)

SourceSetOutput is a FileCollection of all output directories (compiled classes, processed resources, etc.) and it provides means to configure the default output dirs and register additional output dirs. See examples in SourceSetOutput

Default with java plugin:
See SourceSetOutput

SourceDirectorySet resources (read-only)

The non-Java resources which are to be copied into the resources output directory.

Default with java plugin:
[${project.projectDir}/src/${sourceSet.name}/resources]

FileCollection runtimeClasspath

The classpath used to execute this source.

Default with java plugin:
sourceSet.output + project.configurations.runtime (or sourceSet.output + project.configurations.testRuntime for the test source set).

SourceDirectorySet antlr (read-only)

All Antlr source for this source set.

SourceDirectorySet allGroovy (read-only)

All Groovy source for this source set.

SourceDirectorySet groovy (read-only)

The source to be compiled by the Groovy compiler for this source set. Any Java source present in this set will be passed to the Groovy compiler for joint compilation.

SourceDirectorySet allScala (read-only)

All Scala source for this source set.

SourceDirectorySet scala (read-only)

The source to be compiled by the Scala compiler for this source set. This may contain both Java and Scala source files.

Method details

SourceSet compiledBy(Object... taskPaths)

Registers a set of tasks which are responsible for compiling this source set into the classes directory. The paths are evaluated as per Task.dependsOn().

String getCompileTaskName(String language)

Returns the name of a compile task for this source set.

String getTaskName(String verb, String target)

Returns the name of a task for this source set.

Script block details

java { }

Configures the Java source for this set.

The given closure is used to configure the SourceDirectorySet which contains the Java source.

Delegates to:
SourceDirectorySet from java

resources { }

Configures the non-Java resources for this set.

The given closure is used to configure the SourceDirectorySet which contains the resources.

Delegates to:
SourceDirectorySet from resources

antlr { }

Configures the Antlr source for this set. The given closure is used to configure the SourceDirectorySet (see AntlrSourceVirtualDirectory.getAntlr()) which contains the Antlr source.

Delegates to:
SourceDirectorySet from antlr

groovy { }

Configures the Groovy source for this set.

The given closure is used to configure the SourceDirectorySet which contains the Groovy source.

Delegates to:
SourceDirectorySet from groovy

scala { }

Configures the Scala source for this set.

The given closure is used to configure the SourceDirectorySet which contains the Scala source.

Delegates to:
SourceDirectorySet from scala