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

             //enable incremental compilation
             options.incremental = true
         }

## Nested Class Summary

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

`Task.Namer`

## Field Summary

### Fields inherited from class org.gradle.api.tasks.SourceTask

`source`

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

`TASK_ACTION, 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()`
`protected void`
`compile(IncrementalTaskInputs inputs)`
`protected org.gradle.cache.CacheRepository`
`getCacheRepository()`
`protected org.gradle.internal.hash.FileHasher`
`getCachingFileHasher()`
`FileCollection`
`getClasspath()`
Returns the classpath to use to compile the source files.
`FileCollection`
`getEffectiveAnnotationProcessorPath()`
Returns the path to use for annotation processor discovery.
`protected org.gradle.api.internal.file.FileOperations`
`getFileOperations()`
`protected org.gradle.api.internal.tasks.compile.incremental.cache.GeneralCompileCaches`
`getGeneralCompileCaches()`
`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.
`protected org.gradle.internal.hash.StreamHasher`
`getStreamHasher()`
`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

`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 java.lang.Object

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

## Constructor Details

### JavaCompile

public JavaCompile()

## Method Details

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

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

### getToolChain

@Incubating public JavaToolChain getToolChain()
Returns the tool chain that will be used to compile the Java source.

Returns:
  The tool chain.

### setToolChain

@Incubating 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)

### getStreamHasher

@Inject protected org.gradle.internal.hash.StreamHasher getStreamHasher()

### getCachingFileHasher

@Inject protected org.gradle.internal.hash.FileHasher getCachingFileHasher()

### getFileOperations

@Inject protected org.gradle.api.internal.file.FileOperations getFileOperations()

### getGeneralCompileCaches

@Inject protected org.gradle.api.internal.tasks.compile.incremental.cache.GeneralCompileCaches getGeneralCompileCaches()

### getCacheRepository

@Inject protected org.gradle.cache.CacheRepository getCacheRepository()

### 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

@Incubating @Classpath public FileCollection getEffectiveAnnotationProcessorPath()
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)` or `CompileOptions.setCompilerArgs(java.util.List)`. When not explicitly set using one of the methods on `CompileOptions`, the compile classpath will be used when there are annotation processors present in the compile classpath. Otherwise this path will be empty.

This path is always empty when annotation processing is disabled.

Since:
  3.4