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`, `org.gradle.api.internal.tasks.compile.HasCompileOptions`, `ExtensionAware`, `Task`, `PatternFilterable`, `Configurable<Task>`

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

  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`.
    `Property<JavaLauncher>` | `getJavaLauncher()` | The toolchain `JavaLauncher` to use for executing the Groovy compiler.
    `protected ObjectFactory` | `getObjectFactory()` |
    `CompileOptions` | `getOptions()` | Returns the options for Java compilation.
    `protected File` | `getPreviousCompilationData()` | The previous compilation analysis.
    `protected ProjectLayout` | `getProjectLayout()` |
    `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.
    `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, 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, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getOnlyIf, getReasonNotToTrackState, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isEnabled, isHasCustomActions, 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`

- - ### 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
          public ConfigurableFileCollection getAstTransformationClasspath()

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

    - #### compile

          protected void compile​(InputChanges inputChanges)

    - #### getPreviousCompilationData

          @OutputFile
          protected File getPreviousCompilationData()

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

    - #### getGroovyCompilerFactory

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

    - #### getStableSources

          @SkipWhenEmpty
          @IgnoreEmptyDirectories
          @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

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

    - #### 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.
      Specified by:
        `getOptions` in interface `org.gradle.api.internal.tasks.compile.HasCompileOptions`
      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.

    - #### getJavaLauncher

          @Optional
          public Property<JavaLauncher> getJavaLauncher()

      The toolchain `JavaLauncher` to use for executing the Groovy compiler.
      Returns:
        the java launcher property
      Since:
        6.8

    - #### getFeaturePreviews

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