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`, `org.gradle.api.internal.tasks.compile.HasCompileOptions`, `Named`, `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.Named

  `Named.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

  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 abstract org.gradle.internal.file.Deleter`
  `getDeleter()`
  `protected abstract 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 abstract org.gradle.internal.jvm.JavaModuleDetector`
  `getJavaModuleDetector()`
  `protected abstract JavaToolchainService`
  `getJavaToolchainService()`
  `ModularitySpec`
  `getModularity()`
  Returns the module path handling of this compile task.
  `protected abstract ObjectFactory`
  `getObjectFactory()`
  `CompileOptions`
  `getOptions()`
  Returns the compilation options.
  `protected File`
  `getPreviousCompilationData()`
  The previous compilation analysis.
  `protected abstract ProjectLayout`
  `getProjectLayout()`
  `protected abstract org.gradle.api.internal.provider.PropertyFactory`
  `getPropertyFactory()`
  `protected abstract 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

  `getDestinationDirectory, getSourceCompatibility, getTargetCompatibility, setClasspath, 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

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, 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, notCompatibleWithConfigurationCache`

- ## Constructor Details

  - ### JavaCompile

    public JavaCompile()

- ## Method Details

  - ### 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 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 abstract ObjectFactory getObjectFactory()

  - ### getPropertyFactory

    @Inject protected abstract org.gradle.api.internal.provider.PropertyFactory getPropertyFactory()

  - ### getJavaToolchainService

    @Inject protected abstract JavaToolchainService getJavaToolchainService()

  - ### getProviderFactory

    @Inject protected abstract ProviderFactory getProviderFactory()

  - ### getIncrementalCompilerFactory

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

  - ### getJavaModuleDetector

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

  - ### getDeleter

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

  - ### getProjectLayout

    @Inject protected abstract ProjectLayout getProjectLayout()