# RoutesCompile

API Documentation: | `RoutesCompile`

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

Task for compiling routes templates into Scala code.

This task is usually created as one of the build tasks when building a Play application with the `PlayPlugin` plugin. Explicit configuration of this task is not expected and should be performed on the equivalent settings at the `PlayApplicationSpec` level.

### Properties

Property | Description
`additionalImports` | Incubating The additional imports of the Play Routes compiler.
`excludes` | The set of exclude patterns.
`forkOptions` | Incubating The fork options to be applied to the Routes compiler.
`generateReverseRoutes` | Incubating Whether a reverse router should be generated. Default is true.
`includes` | The set of include patterns.
`injectedRoutesGenerator` | Incubating Is the injected routes generator (`play.routes.compiler.InjectedRoutesGenerator`) used for generating routes? Default is false.
`namespaceReverseRouter` | Incubating Whether the reverse router should be namespaced.
`outputDirectory` | Incubating The directory to generate the parser source files into.
`source` | The source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

### Methods

Method | Description
`exclude(excludeSpec)` | Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a `FileTreeElement` as its parameter. The closure should return true or false. Example:
`exclude(excludes)` | Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.
`exclude(excludes)` | Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.
`exclude(excludeSpec)` | Adds an exclude spec. This method may be called multiple times to append new specs. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.
`include(includeSpec)` | Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a `FileTreeElement` as its parameter. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.
`include(includes)` | Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.
`include(includes)` | Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.
`include(includeSpec)` | Adds an include spec. This method may be called multiple times to append new specs. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.
`source(sources)` | Adds some source to this task. The given source objects will be evaluated as per `Project.files(java.lang.Object[])`.

### Script blocks

No script blocks

### Property details

#### ``List`<`String`>` `additionalImports`

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

The additional imports of the Play Routes compiler.

#### ``Set`<`String`>` `excludes`

The set of exclude patterns.

#### `BaseForkOptions` `forkOptions` (read-only)

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

The fork options to be applied to the Routes compiler.

#### `boolean` `generateReverseRoutes`

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

Whether a reverse router should be generated. Default is true.

#### ``Set`<`String`>` `includes`

The set of include patterns.

#### `boolean` `injectedRoutesGenerator`

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

Is the injected routes generator (`play.routes.compiler.InjectedRoutesGenerator`) used for generating routes? Default is false.

#### `boolean` `namespaceReverseRouter`

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

Whether the reverse router should be namespaced.

#### `File` `outputDirectory`

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

The directory to generate the parser source files into.

#### `FileTree` `source`

The source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

The `PathSensitivity` for the sources is configured to be `PathSensitivity.ABSOLUTE`. If your sources are less strict, please change it accordingly by overriding this method in your subclass.

### Method details

#### `SourceTask` `exclude`(`Closure` excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a `FileTreeElement` as its parameter. The closure should return true or false. Example:

    copySpec {
      from 'source'
      into 'destination'
      //an example of excluding files from certain configuration:
      exclude { it.file in configurations.someConf.files }
    }

If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

#### `SourceTask` `exclude`(``Iterable`<`String`>` excludes)

Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

#### `SourceTask` `exclude`(``String`...` excludes)

Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

#### `SourceTask` `exclude`(``Spec`<`FileTreeElement`>` excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

#### `SourceTask` `include`(`Closure` includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a `FileTreeElement` as its parameter. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

#### `SourceTask` `include`(``Iterable`<`String`>` includes)

Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

#### `SourceTask` `include`(``String`...` includes)

Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

#### `SourceTask` `include`(``Spec`<`FileTreeElement`>` includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

#### `SourceTask` `source`(``Object`...` sources)

Adds some source to this task. The given source objects will be evaluated as per `Project.files(java.lang.Object[])`.