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:
    `java.lang.Comparable<Task>`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.IConventionAware`, `org.gradle.api.internal.TaskInternal`, `org.gradle.api.internal.tasks.compile.HasCompileOptions`, `ExtensionAware`, `Task`, `PatternFilterable`, `Configurable<Task>`

      @CacheableTask
      public abstract class JavaCompile
      extends AbstractCompile
      implements org.gradle.api.internal.tasks.compile.HasCompileOptions

  Compiles Java source files.

           plugins {
               id 'java'
           }

           tasks.withType(JavaCompile).configureEach {
               //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
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `compile​(InputChanges inputs)` | Compile the sources, taking into account the changes reported by inputs.
    `FileCollection` | `getClasspath()` | Returns the classpath to use to compile the source files.
    `protected org.gradle.internal.file.Deleter` | `getDeleter()` |
    `protected org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory` | `getIncrementalCompilerFactory()` |
    `Property<JavaCompiler>` | `getJavaCompiler()` | Configures the java compiler to be used to compile the Java source.
    `protected org.gradle.internal.jvm.JavaModuleDetector` | `getJavaModuleDetector()` |
    `protected JavaToolchainService` | `getJavaToolchainService()` |
    `ModularitySpec` | `getModularity()` | Returns the module path handling of this compile task.
    `protected ObjectFactory` | `getObjectFactory()` |
    `CompileOptions` | `getOptions()` | Returns the compilation options.
    `protected java.io.File` | `getPreviousCompilationData()` | The previous compilation analysis.
    `protected ProjectLayout` | `getProjectLayout()` |
    `protected ProviderFactory` | `getProviderFactory()` |
    `FileTree` | `getSource()` | Returns the source for this task, after the include and exclude patterns have been applied.
    `protected FileCollection` | `getStableSources()` | The sources for incremental change detection.

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

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

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

      `exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, 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

      `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

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

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

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

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

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

- - ### Constructor Detail

    - #### JavaCompile

          public JavaCompile()

  - ### Method Detail

    - #### getSource

          @Internal("tracked via stableSources")
          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.

    - #### getJavaCompiler

          public Property<JavaCompiler> getJavaCompiler()

      Configures the java compiler to be used to compile the Java source.
      Since:
        6.7
      See Also:
        `JavaToolchainSpec`

    - #### compile

          protected void compile​(InputChanges inputs)

      Compile the sources, taking into account the changes reported by inputs.
      Since:
        6.0

    - #### getPreviousCompilationData

          @OutputFile
          protected java.io.File getPreviousCompilationData()

      The previous compilation analysis. Internal use only.
      Since:
        7.1

    - #### getModularity

          public ModularitySpec getModularity()

      Returns the module path handling of this compile task.
      Since:
        6.4

    - #### getOptions

          public CompileOptions getOptions()

      Returns the compilation options.
      Specified by:
        `getOptions` in interface `org.gradle.api.internal.tasks.compile.HasCompileOptions`
      Returns:
        The compilation options.

    - #### getClasspath

          @CompileClasspath
          @Incremental
          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.

    - #### getStableSources

          @SkipWhenEmpty
          @IgnoreEmptyDirectories
          @NormalizeLineEndings
          @PathSensitive(RELATIVE)
          @InputFiles
          protected FileCollection getStableSources()

      The sources for incremental change detection.
      Since:
        6.0

    - #### getObjectFactory

          @Inject
          protected ObjectFactory getObjectFactory()

    - #### getJavaToolchainService

          @Inject
          protected JavaToolchainService getJavaToolchainService()

    - #### getProviderFactory

          @Inject
          protected ProviderFactory getProviderFactory()

    - #### getIncrementalCompilerFactory

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

    - #### getJavaModuleDetector

          @Inject
          protected org.gradle.internal.jvm.JavaModuleDetector getJavaModuleDetector()

    - #### getDeleter

          @Inject
          protected org.gradle.internal.file.Deleter getDeleter()

    - #### getProjectLayout

          @Inject
          protected ProjectLayout getProjectLayout()