org.gradle.api.tasks

## Interface SourceSet

-     public interface 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/**'
           }
         }
       }

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `MAIN_SOURCE_SET_NAME` The name of the main source set.
    `static String` | `TEST_SOURCE_SET_NAME` The name of the test source set.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `SourceSet` | `compiledBy(Object... taskPaths)` Registers a set of tasks which are responsible for compiling this source set into the classes directory.
    `SourceDirectorySet` | `getAllJava()` All Java source files for this source set.
    `SourceDirectorySet` | `getAllSource()` All source files for this source set.
    `String` | `getClassesTaskName()` Returns the name of the classes task for this source set.
    `FileCollection` | `getCompileClasspath()` Returns the classpath used to compile this source.
    `String` | `getCompileClasspathConfigurationName()` Returns the name of the compile classpath configuration for this source set.
    `String` | `getCompileConfigurationName()` Returns the name of the compile configuration for this source set.
    `String` | `getCompileJavaTaskName()` Returns the name of the compile Java task for this source set.
    `String` | `getCompileOnlyConfigurationName()` Returns the name of the compile only configuration for this source set.
    `String` | `getCompileTaskName(String language)` Returns the name of a compile task for this source set.
    `String` | `getJarTaskName()` Returns the name of the Jar task for this source set.
    `SourceDirectorySet` | `getJava()` Returns the Java source which is to be compiled by the Java compiler into the class output directory.
    `String` | `getName()` Returns the name of this source set.
    `SourceSetOutput` | `getOutput()` `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.
    `String` | `getProcessResourcesTaskName()` Returns the name of the resource process task for this source set.
    `SourceDirectorySet` | `getResources()` Returns the non-Java resources which are to be copied into the resources output directory.
    `FileCollection` | `getRuntimeClasspath()` Returns the classpath used to execute this source.
    `String` | `getRuntimeConfigurationName()` Returns the name of the runtime configuration for this source set.
    `String` | `getTaskName(String verb, String target)` Returns the name of a task for this source set.
    `SourceSet` | `java(Action<? super SourceDirectorySet> configureAction)` Configures the Java source for this set.
    `SourceSet` | `java(Closure configureClosure)` Configures the Java source for this set.
    `SourceSet` | `resources(Action<? super SourceDirectorySet> configureAction)` Configures the non-Java resources for this set.
    `SourceSet` | `resources(Closure configureClosure)` Configures the non-Java resources for this set.
    `void` | `setCompileClasspath(FileCollection classpath)` Sets the classpath used to compile this source.
    `void` | `setRuntimeClasspath(FileCollection classpath)` Sets the classpath used to execute this source.

- - ### Field Detail

    - #### MAIN_SOURCE_SET_NAME

          static final String MAIN_SOURCE_SET_NAME

      The name of the main source set.
      See Also:
        Constant Field Values

    - #### TEST_SOURCE_SET_NAME

          static final String TEST_SOURCE_SET_NAME

      The name of the test source set.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getName

          String getName()

      Returns the name of this source set.
      Returns:
        The name. Never returns null.

    - #### getCompileClasspath

          FileCollection getCompileClasspath()

      Returns the classpath used to compile this source.
      Returns:
        The classpath. Never returns null.

    - #### setCompileClasspath

          void setCompileClasspath(FileCollection classpath)

      Sets the classpath used to compile this source.
      Parameters:
        `classpath` - The classpath. Should not be null.

    - #### getRuntimeClasspath

          FileCollection getRuntimeClasspath()

      Returns the classpath used to execute this source.
      Returns:
        The classpath. Never returns null.

    - #### setRuntimeClasspath

          void setRuntimeClasspath(FileCollection classpath)

      Sets the classpath used to execute this source.
      Parameters:
        `classpath` - The classpath. Should not be null.

    - #### getOutput

          SourceSetOutput getOutput()

      `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`
      Returns:
        The output dirs, as a `SourceSetOutput`.

    - #### compiledBy

          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(Object...)`.
      Parameters:
        `taskPaths` - The tasks which compile this source set.
      Returns:
        this

    - #### getResources

          SourceDirectorySet getResources()

      Returns the non-Java resources which are to be copied into the resources output directory.
      Returns:
        the resources. Never returns null.

    - #### resources

          SourceSet resources(Closure configureClosure)

      Configures the non-Java resources for this set.

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

      Parameters:
        `configureClosure` - The closure to use to configure the resources.
      Returns:
        this

    - #### resources

          SourceSet resources(Action<? super SourceDirectorySet> configureAction)

      Configures the non-Java resources for this set.

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

      Parameters:
        `configureAction` - The action to use to configure the resources.
      Returns:
        this

    - #### getJava

          SourceDirectorySet getJava()

      Returns the Java source which is to be compiled by the Java compiler into the class output directory.
      Returns:
        the Java source. Never returns null.

    - #### java

          SourceSet java(Closure configureClosure)

      Configures the Java source for this set.

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

      Parameters:
        `configureClosure` - The closure to use to configure the Java source.
      Returns:
        this

    - #### java

          SourceSet java(Action<? super SourceDirectorySet> configureAction)

      Configures the Java source for this set.

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

      Parameters:
        `configureAction` - The action to use to configure the Java source.
      Returns:
        this

    - #### getAllJava

          SourceDirectorySet getAllJava()

      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.
      Returns:
        the Java source. Never returns null.

    - #### getAllSource

          SourceDirectorySet getAllSource()

      All source files for this source set.
      Returns:
        the source. Never returns null.

    - #### getClassesTaskName

          String getClassesTaskName()

      Returns the name of the classes task for this source set.
      Returns:
        The task name. Never returns null.

    - #### getProcessResourcesTaskName

          String getProcessResourcesTaskName()

      Returns the name of the resource process task for this source set.
      Returns:
        The task name. Never returns null.

    - #### getCompileJavaTaskName

          String getCompileJavaTaskName()

      Returns the name of the compile Java task for this source set.
      Returns:
        The task name. Never returns null.

    - #### getCompileTaskName

          String getCompileTaskName(String language)

      Returns the name of a compile task for this source set.
      Parameters:
        `language` - The language to be compiled.
      Returns:
        The task name. Never returns null.

    - #### getJarTaskName

          String getJarTaskName()

      Returns the name of the Jar task for this source set.
      Returns:
        The task name. Never returns null.

    - #### getTaskName

          String getTaskName(String verb,
                           String target)

      Returns the name of a task for this source set.
      Parameters:
        `verb` - The action, may be null.
        `target` - The target, may be null
      Returns:
        The task name, generally of the form ${verb}${name}${noun}

    - #### getCompileConfigurationName

          String getCompileConfigurationName()

      Returns the name of the compile configuration for this source set.
      Returns:
        The configuration name

    - #### getRuntimeConfigurationName

          String getRuntimeConfigurationName()

      Returns the name of the runtime configuration for this source set.
      Returns:
        The runtime configuration name

    - #### getCompileOnlyConfigurationName

          @Incubating
          String getCompileOnlyConfigurationName()

      Returns the name of the compile only configuration for this source set.
      Returns:
        The compile only configuration name
      Since:
        2.12

    - #### getCompileClasspathConfigurationName

          @Incubating
          String getCompileClasspathConfigurationName()

      Returns the name of the compile classpath configuration for this source set.
      Returns:
        The compile classpath configuration
      Since:
        2.12