# Class AbstractCompile

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.SourceTask
org.gradle.api.tasks.compile.AbstractCompile

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, ExtensionAware, Task, PatternFilterable, org.gradle.util.Configurable<Task>`

Direct Known Subclasses:
  `AbstractScalaCompile, GroovyCompile, JavaCompile`

public abstract class AbstractCompile extends SourceTask
The base class for all JVM-based language compilation tasks.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Task

`Task.Namer`

## Field Summary

### Fields inherited from class SourceTask

`source`

### Fields inherited from interface Task

`TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

## Constructor Summary

Constructors
Constructor
Description
`AbstractCompile()`

## Method Summary

Modifier and Type
Method
Description
`protected abstract void`
`compile()`
`FileCollection`
`getClasspath()`
Returns the classpath to use to compile the source files.
`File`
`getDestinationDir()`
Returns the directory to generate the `.class` files into.
`String`
`getSourceCompatibility()`
Returns the Java language level to use to compile the source files.
`String`
`getTargetCompatibility()`
Returns the target JVM to generate the `.class` files for.
`void`
`setClasspath(FileCollection configuration)`
Sets the classpath to use to compile the source files.
`void`
`setDestinationDir(File destinationDir)`
Sets the directory to generate the `.class` files into.
`void`
`setDestinationDir(Provider<File> destinationDir)`
Sets the directory to generate the `.class` files into.
`void`
`setSourceCompatibility(String sourceCompatibility)`
Sets the Java language level to use to compile the source files.
`void`
`setTargetCompatibility(String targetCompatibility)`
Sets the target JVM to generate the `.class` files for.

### Methods inherited from class SourceTask

`exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSetFactory, getSource, include, include, include, include, setExcludes, setIncludes, setSource, setSource, source`

### Methods inherited from class org.gradle.api.internal.ConventionTask

`conventionMapping, conventionMapping, getConventionMapping`

### Methods inherited from class DefaultTask

`newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

### Methods inherited from class org.gradle.api.internal.AbstractTask

`addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### AbstractCompile

public AbstractCompile()

## Method Details

### compile

protected abstract void compile()

### getClasspath

@Classpath public FileCollection getClasspath()
Returns the classpath to use to compile the source files.

Returns:
  The classpath.

### setClasspath

public void setClasspath(FileCollection configuration)
Sets the classpath to use to compile the source files.

Parameters:
  `configuration` - The classpath. Must not be null, but may be empty.

### getDestinationDir

@OutputDirectory public File getDestinationDir()
Returns the directory to generate the `.class` files into.

Returns:
  The destination directory.

### setDestinationDir

public void setDestinationDir(File destinationDir)
Sets the directory to generate the `.class` files into.

Parameters:
  `destinationDir` - The destination directory. Must not be null.

### setDestinationDir

public void setDestinationDir(Provider<File> destinationDir)
Sets the directory to generate the `.class` files into.

Parameters:
  `destinationDir` - The destination directory. Must not be null.
Since:
  4.0

### getSourceCompatibility

@Input public String getSourceCompatibility()
Returns the Java language level to use to compile the source files.

Returns:
  The source language level.

### setSourceCompatibility

public void setSourceCompatibility(String sourceCompatibility)
Sets the Java language level to use to compile the source files.

Parameters:
  `sourceCompatibility` - The source language level. Must not be null.

### getTargetCompatibility

@Input public String getTargetCompatibility()
Returns the target JVM to generate the `.class` files for.

Returns:
  The target JVM.

### setTargetCompatibility

public void setTargetCompatibility(String targetCompatibility)
Sets the target JVM to generate the `.class` files for.

Parameters:
  `targetCompatibility` - The target JVM. Must not be null.