Package org.gradle.api.tasks.compile

## Class GroovyCompile

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

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

      @CacheableTask
      public class GroovyCompile
      extends AbstractCompile

  Compiles Groovy source files, and optionally, Java source files.

- - ### 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
    --- | ---
    `GroovyCompile()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `compile​(InputChanges inputChanges)` |
    `ConfigurableFileCollection` | `getAstTransformationClasspath()` | The classpath containing AST transformations and their dependencies.
    `FileCollection` | `getClasspath()` | Returns the classpath to use to compile the source files.
    `protected org.gradle.internal.file.Deleter` | `getDeleter()` |
    `protected org.gradle.api.internal.FeaturePreviews` | `getFeaturePreviews()` |
    `FileCollection` | `getGroovyClasspath()` | Returns the classpath containing the version of Groovy to use for compilation.
    `protected org.gradle.api.internal.tasks.compile.GroovyCompilerFactory` | `getGroovyCompilerFactory()` |
    `protected String` | `getGroovyCompilerJvmVersion()` | We need to track the Java version of the JVM the Groovy compiler is running on, since the Groovy compiler produces different results depending on it.
    `GroovyCompileOptions` | `getGroovyOptions()` | Gets the options for the Groovy compilation.
    `protected org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory` | `getIncrementalCompilerFactory()` | Injects and returns an instance of `IncrementalCompilerFactory`.
    `protected JavaToolChain` | `getJavaToolChain()` | We need to track the toolchain used by the Groovy compiler to compile Java sources.
    `protected org.gradle.api.internal.tasks.JavaToolChainFactory` | `getJavaToolChainFactory()` |
    `protected ObjectFactory` | `getObjectFactory()` |
    `CompileOptions` | `getOptions()` | Returns the options for Java compilation.
    `protected ProjectLayout` | `getProjectLayout()` |
    `FileTree` | `getSource()` | Returns the source for this task, after the include and exclude patterns have been applied.
    `protected File` | `getSourceClassesMappingFile()` | The Groovy source-classes mapping file.
    `protected FileCollection` | `getStableSources()` | The sources for incremental change detection.
    `void` | `setGroovyClasspath​(FileCollection groovyClasspath)` | Sets the classpath containing the version of Groovy to use for compilation.

    - ### 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, 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.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, getRequiredServices, getServices, getSharedResources, 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, usesService`

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

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

- - ### Constructor Detail

    - #### GroovyCompile

          public GroovyCompile()

  - ### Method Detail

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

    - #### getAstTransformationClasspath

          @Classpath
          @Incubating
          public ConfigurableFileCollection getAstTransformationClasspath()

      The classpath containing AST transformations and their dependencies.
      Since:
        5.6

    - #### compile

          protected void compile​(InputChanges inputChanges)

    - #### getSourceClassesMappingFile

          @LocalState
          @Incubating
          protected File getSourceClassesMappingFile()

      The Groovy source-classes mapping file. Internal use only.
      Since:
        5.6

    - #### getGroovyCompilerFactory

          @Inject
          protected org.gradle.api.internal.tasks.compile.GroovyCompilerFactory getGroovyCompilerFactory()

    - #### getStableSources

          @Incubating
          @SkipWhenEmpty
          @PathSensitive(RELATIVE)
          @InputFiles
          protected FileCollection getStableSources()

      The sources for incremental change detection.
      Since:
        5.6

    - #### getIncrementalCompilerFactory

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

      Injects and returns an instance of `IncrementalCompilerFactory`.
      Since:
        5.6

    - #### getDeleter

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

    - #### getProjectLayout

          @Inject
          protected ProjectLayout getProjectLayout()

    - #### getObjectFactory

          @Inject
          protected ObjectFactory getObjectFactory()

    - #### getGroovyCompilerJvmVersion

          @Input
          protected String getGroovyCompilerJvmVersion()

      We need to track the Java version of the JVM the Groovy compiler is running on, since the Groovy compiler produces different results depending on it. This should be replaced by a property on the Groovy toolchain as soon as we model these.
      Since:
        4.0

    - #### getJavaToolChain

          protected JavaToolChain getJavaToolChain()

      We need to track the toolchain used by the Groovy compiler to compile Java sources.
      Since:
        4.0

    - #### getSource

          @ReplacedBy("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.

    - #### getGroovyOptions

          public GroovyCompileOptions getGroovyOptions()

      Gets the options for the Groovy compilation. To set specific options for the nested Java compilation, use `getOptions()`.
      Returns:
        The Groovy compile options. Never returns null.

    - #### getOptions

          public CompileOptions getOptions()

      Returns the options for Java compilation.
      Returns:
        The Java compile options. Never returns null.

    - #### getGroovyClasspath

          @Classpath
          public FileCollection getGroovyClasspath()

      Returns the classpath containing the version of Groovy to use for compilation.
      Returns:
        The classpath.

    - #### setGroovyClasspath

          public void setGroovyClasspath​(FileCollection groovyClasspath)

      Sets the classpath containing the version of Groovy to use for compilation.
      Parameters:
        `groovyClasspath` - The classpath. Must not be null.

    - #### getJavaToolChainFactory

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

    - #### getFeaturePreviews

          @Inject
          protected org.gradle.api.internal.FeaturePreviews getFeaturePreviews()