Package org.gradle.api.tasks.compile

## Class JavaCompile

- 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
          - - org.gradle.api.tasks.compile.JavaCompile

- 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:
    `PlatformJavaCompile`

      @CacheableTask
      public class JavaCompile
      extends AbstractCompile

  Compiles Java source files.

           apply plugin: 'java'

           tasks.withType(JavaCompile) {
               //enable compilation in a separate daemon process
               options.fork = true
           }

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

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

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JavaCompile()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `compile()` |
    `protected void` | `compile​(IncrementalTaskInputs inputs)` |
    `FileCollection` | `getClasspath()` | Returns the classpath to use to compile the source files.
    `FileCollection` | `getEffectiveAnnotationProcessorPath()` | Deprecated. Use `CompileOptions.getAnnotationProcessorPath()` instead.
    `protected org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory` | `getIncrementalCompilerFactory()` |
    `protected org.gradle.api.internal.tasks.JavaToolChainFactory` | `getJavaToolChainFactory()` |
    `CompileOptions` | `getOptions()` | Returns the compilation options.
    `protected JavaPlatform` | `getPlatform()` |
    `FileTree` | `getSource()` | Returns the source for this task, after the include and exclude patterns have been applied.
    `JavaToolChain` | `getToolChain()` | Returns the tool chain that will be used to compile the Java source.
    `void` | `setToolChain​(JavaToolChain toolChain)` | Sets the tool chain that should be used to compile the Java source.

    - ### Methods inherited from class org.gradle.api.tasks.compile.AbstractCompile

      `getDestinationDir, getSourceCompatibility, getTargetCompatibility, setClasspath, setDestinationDir, setDestinationDir, setSourceCompatibility, setTargetCompatibility`

    - ### Methods inherited from class org.gradle.api.tasks.SourceTask

      `exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSetFactory, 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 org.gradle.api.DefaultTask

      `newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

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

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

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### JavaCompile

          public JavaCompile()

  - ### Method Detail

    - #### getSource

          @PathSensitive(NAME_ONLY)
          public FileTree getSource()

      Returns 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.

      Overrides:
        `getSource` in class `SourceTask`
      Returns:
        The source.

    - #### getToolChain

          public JavaToolChain getToolChain()

      Returns the tool chain that will be used to compile the Java source.
      Returns:
        The tool chain.

    - #### setToolChain

          public void setToolChain​(JavaToolChain toolChain)

      Sets the tool chain that should be used to compile the Java source.
      Parameters:
        `toolChain` - The tool chain.

    - #### compile

          protected void compile​(IncrementalTaskInputs inputs)

    - #### getIncrementalCompilerFactory

          @Inject
          protected org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory getIncrementalCompilerFactory()

    - #### getJavaToolChainFactory

          @Inject
          protected org.gradle.api.internal.tasks.JavaToolChainFactory getJavaToolChainFactory()

    - #### compile

          protected void compile()

      Specified by:
        `compile` in class `AbstractCompile`

    - #### getPlatform

          protected JavaPlatform getPlatform()

    - #### getOptions

          public CompileOptions getOptions()

      Returns the compilation options.
      Returns:
        The compilation options.

    - #### getClasspath

          @CompileClasspath
          public FileCollection getClasspath()

      Description copied from class: `AbstractCompile`
      Returns the classpath to use to compile the source files.
      Overrides:
        `getClasspath` in class `AbstractCompile`
      Returns:
        The classpath.

    - #### getEffectiveAnnotationProcessorPath

          @Deprecated
          @Internal
          @Nullable
          public FileCollection getEffectiveAnnotationProcessorPath()

      Deprecated.
      Use `CompileOptions.getAnnotationProcessorPath()` instead.
      Returns the path to use for annotation processor discovery. Returns an empty collection when no processing should be performed, for example when no annotation processors are present in the compile classpath or annotation processing has been disabled.

      You can specify this path using `CompileOptions.setAnnotationProcessorPath(FileCollection)`.

      This path is always empty when annotation processing is disabled.

      Since:
        3.4