# CompileOptions

API Documentation: | `CompileOptions`

Main options for Java compilation.

### Properties

Property | Description
`bootClasspath` | The bootstrap classpath to be used for the compiler process. Defaults to `null`.
`compilerArgs` | Returns any additional arguments to be passed to the compiler. Defaults to the empty list.
`debug` | Tells whether to include debugging information in the generated class files. Defaults to `true`. See `DebugOptions.getDebugLevel()` for which debugging information will be generated.
`debugOptions` | Returns options for generating debugging information.
`dependOptions` | Returns options for using the Ant `<depend>` task.
`deprecation` | Tells whether to log details of usage of deprecated members or classes. Defaults to `false`.
`encoding` | The character encoding to be used when reading source files. Defaults to `null`, in which case the platform default encoding will be used.
`extensionDirs` | The extension dirs to be used for the compiler process. Defaults to `null`.
`failOnError` | Tells whether to fail the build when compilation fails. Defaults to `true`.
`fork` | Tells whether to run the compiler in its own process. Note that this does not necessarily mean that a new process will be created for each compile task. Defaults to `false`.
`forkOptions` | Returns options for running the compiler in a child process.
`incremental` | Incubating informs whether to use experimental incremental compilation feature. See `CompileOptions.setIncremental()`
`listFiles` | Tells whether to log the files to be compiled. Defaults to `false`.
`sourcepath` | Incubating The source path to use for the compilation.
`useDepend` | Tells whether to use the Ant `<depend>` task. Only takes effect if `useAnt` is `true`. Defaults to `false`.
`verbose` | Tells whether to produce verbose output. Defaults to `false`.
`warnings` | Tells whether to log warning messages. The default is `true`.

### Methods

Method | Description
`debug(debugArgs)` | Convenience method to set `DebugOptions` with named parameter syntax. Calling this method will set `debug` to `true`.
`depend(dependArgs)` | Convenience method to set `DependOptions` with named parameter syntax. Calling this method will set `useDepend` to `true`.
`fork(forkArgs)` | Convenience method to set `ForkOptions` with named parameter syntax. Calling this method will set `fork` to `true`.

### Script blocks

No script blocks

### Property details

#### `String` `bootClasspath`

The bootstrap classpath to be used for the compiler process. Defaults to `null`.

Default:
  `null`

#### ``List`<`String`>` `compilerArgs`

Returns any additional arguments to be passed to the compiler. Defaults to the empty list.

Default:
  `[]`

#### `boolean` `debug`

Tells whether to include debugging information in the generated class files. Defaults to `true`. See `DebugOptions.getDebugLevel()` for which debugging information will be generated.

Default:
  `true`

#### `DebugOptions` `debugOptions`

Returns options for generating debugging information.

#### `DependOptions` `dependOptions`

Returns options for using the Ant `<depend>` task.

#### `boolean` `deprecation`

Tells whether to log details of usage of deprecated members or classes. Defaults to `false`.

Default:
  `false`

#### `String` `encoding`

The character encoding to be used when reading source files. Defaults to `null`, in which case the platform default encoding will be used.

Default:
  `null`

#### `String` `extensionDirs`

The extension dirs to be used for the compiler process. Defaults to `null`.

Default:
  `null`

#### `boolean` `failOnError`

Tells whether to fail the build when compilation fails. Defaults to `true`.

Default:
  `true`

#### `boolean` `fork`

Tells whether to run the compiler in its own process. Note that this does not necessarily mean that a new process will be created for each compile task. Defaults to `false`.

Default:
  `false`

#### `ForkOptions` `forkOptions`

Returns options for running the compiler in a child process.

#### `boolean` `incremental`

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

informs whether to use experimental incremental compilation feature. See `CompileOptions.setIncremental()`

Default:
  `false`

#### `boolean` `listFiles`

Tells whether to log the files to be compiled. Defaults to `false`.

Default:
  `false`

#### `FileCollection` `sourcepath`

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

The source path to use for the compilation.

The source path indicates the location of source files that may be compiled if necessary. It is effectively a complement to the class path, where the classes to be compiled against are in source form. It does not indicate the actual primary source being compiled.

The source path feature of the Java compiler is rarely needed for modern builds that use dependency management.

The default value for the source path is `null`, which indicates an empty source path. Note that this is different to the default value for the `-sourcepath` option for `javac`, which is to use the value specified by `-classpath`. If you wish to use any source path, it must be explicitly set.

Default:
  `null`

#### `boolean` `useDepend`

Tells whether to use the Ant `<depend>` task. Only takes effect if `useAnt` is `true`. Defaults to `false`.

Default:
  `false`

#### `boolean` `verbose`

Tells whether to produce verbose output. Defaults to `false`.

Default:
  `false`

#### `boolean` `warnings`

Tells whether to log warning messages. The default is `true`.

Default:
  `true`

### Method details

#### `CompileOptions` `debug`(``Map`<`String`, `Object`>` debugArgs)

Convenience method to set `DebugOptions` with named parameter syntax. Calling this method will set `debug` to `true`.

#### `CompileOptions` `depend`(``Map`<`String`, `Object`>` dependArgs)

Convenience method to set `DependOptions` with named parameter syntax. Calling this method will set `useDepend` to `true`.

#### `CompileOptions` `fork`(``Map`<`String`, `Object`>` forkArgs)

Convenience method to set `ForkOptions` with named parameter syntax. Calling this method will set `fork` to `true`.