# 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, Named, ExtensionAware, Task, PatternFilterable, Configurable<Task>`

Direct Known Subclasses:
  `AbstractScalaCompile, GroovyCompile, JavaCompile`

@DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly") public abstract class AbstractCompile extends SourceTask
The base class for all JVM-based language compilation tasks.

Since:
  0.9

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  ### Fields inherited from interface Task

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

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractCompile()`
  Creates a new `AbstractCompile`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FileCollection`
  `getClasspath()`
  Returns the classpath to use to compile the source files.
  `DirectoryProperty`
  `getDestinationDirectory()`
  Returns the directory property that represents 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`
  `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, getPatternSet, 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

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache, service`

- ## Constructor Details

  - ### AbstractCompile

    public AbstractCompile()
    Creates a new `AbstractCompile`.
    Since:
      0.9

- ## Method Details

  - ### getClasspath

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

  - ### 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.
    Since:
      0.9

  - ### getDestinationDirectory

    @OutputDirectory public DirectoryProperty getDestinationDirectory()
    Returns the directory property that represents the directory to generate the `.class` files into.
    Returns:
      The destination directory property.
    Since:
      6.1

  - ### getSourceCompatibility

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

  - ### 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.
    Since:
      0.9

  - ### getTargetCompatibility

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

  - ### 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.
    Since:
      0.9