# ScalaSourceDirectorySet

API Documentation: | `ScalaSourceDirectorySet`

Note: This class is incubating and may change in a future version of Gradle.

A `ScalaSourceDirectorySet` defines the properties and methods added to a `SourceSet` by the `ScalaPlugin`.

### Properties

Property | Description
`classesDirectory` | The directory property that is bound to the task that produces the output via `SourceDirectorySet.compiledBy(org.gradle.api.tasks.TaskProvider, java.util.function.Function)`. Use this as part of a classpath or input to another task to ensure that the output is created before it is used. Note: To define the path of the output folder use `SourceDirectorySet.getDestinationDirectory()`
`destinationDirectory` | Configure the directory to assemble the compiled classes into.
`filter` | The filter used to select the source from the source directories. These filter patterns are applied after the include and exclude patterns of this source directory set. Generally, the filter patterns are used to restrict the contents to certain types of files, eg `*.java`.
`outputDir` | Deprecated Replaced The directory to put the output for these sources.
`srcDirs` | The source directories that make up this set. Does not filter source directories that do not exist.

### Methods

Method | Description
`compiledBy(taskProvider, mapping)` | Define the task responsible for processing the source.
`source(source)` | Adds the given source to this set.
`srcDir(srcPath)` | Adds the given source directory to this set. The given directory does not need to exist. Directories that do not exist are ignored.
`srcDirs(srcPaths)` | Adds the given source directories to this set. The given directories do not need to exist. Directories that do not exist are ignored.

### Script blocks

No script blocks

### Property details

#### ``Provider`<`Directory`>` `classesDirectory`

The directory property that is bound to the task that produces the output via `SourceDirectorySet.compiledBy(org.gradle.api.tasks.TaskProvider, java.util.function.Function)`. Use this as part of a classpath or input to another task to ensure that the output is created before it is used. Note: To define the path of the output folder use `SourceDirectorySet.getDestinationDirectory()`

Default with `java-base` plugin:
  ``${project.buildDir}`/classes/`${sourceDirectorySet.name}`/`${sourceSet.name}``

#### `DirectoryProperty` `destinationDirectory`

Configure the directory to assemble the compiled classes into.

Default with `java-base` plugin:
  ``${project.buildDir}`/classes/`${sourceDirectorySet.name}`/`${sourceSet.name}``

#### `PatternFilterable` `filter` (read-only)

The filter used to select the source from the source directories. These filter patterns are applied after the include and exclude patterns of this source directory set. Generally, the filter patterns are used to restrict the contents to certain types of files, eg `*.java`.

#### `File` `outputDir`

Note: This property is deprecated and will be removed in the next major version of Gradle.

Note: This property has been replaced by classesDirectory.

The directory to put the output for these sources.

Default with `java-base` plugin:
  ``${project.buildDir}`/classes/`${sourceDirectorySet.name}`/`${sourceSet.name}``

#### ``Set`<`File`>` `srcDirs`

The source directories that make up this set. Does not filter source directories that do not exist.

Default with `java-base` plugin:
  `src/`${sourceSet.name}`/`${sourceDirectorySet.name}``

### Method details

#### `void` `compiledBy`(``TaskProvider`<`T`>` taskProvider, ``Function`<`T`, `DirectoryProperty`>` mapping)

Define the task responsible for processing the source.

#### `SourceDirectorySet` `source`(`SourceDirectorySet` source)

Adds the given source to this set.

#### `SourceDirectorySet` `srcDir`(`Object` srcPath)

Adds the given source directory to this set. The given directory does not need to exist. Directories that do not exist are ignored.

#### `SourceDirectorySet` `srcDirs`(``Object`...` srcPaths)

Adds the given source directories to this set. The given directories do not need to exist. Directories that do not exist are ignored.