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:
    `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 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 Abstract 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 abstract org.gradle.internal.file.Deleter` | `getDeleter()` |
    `protected abstract org.gradle.internal.buildoption.FeatureFlags` | `getFeatureFlags()` |
    `FileCollection` | `getGroovyClasspath()` | Returns the classpath containing the version of Groovy to use for compilation.
    `protected abstract org.gradle.api.internal.tasks.compile.GroovyCompilerFactory` | `getGroovyCompilerFactory()` |
    `protected java.lang.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 abstract org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory` | `getIncrementalCompilerFactory()` |
    `Property<JavaLauncher>` | `getJavaLauncher()` | The toolchain `JavaLauncher` to use for executing the Groovy compiler.
    `protected abstract JavaToolchainService` | `getJavaToolchainService()` |
    `protected abstract ObjectFactory` | `getObjectFactory()` |
    `CompileOptions` | `getOptions()` | Returns the options for Java compilation.
    `protected java.io.File` | `getPreviousCompilationData()` | The previous compilation analysis.
    `protected abstract 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, 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, 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

    - #### 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 java.io.File getPreviousCompilationData()

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

    - #### getStableSources

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

      The sources for incremental change detection.
      Since:
        5.6

    - #### getGroovyCompilerJvmVersion

          @Input
          protected java.lang.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

          public Property<JavaLauncher> getJavaLauncher()

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

    - #### getIncrementalCompilerFactory

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

    - #### getDeleter

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

    - #### getProjectLayout

          @Inject
          protected abstract ProjectLayout getProjectLayout()

    - #### getObjectFactory

          @Inject
          protected abstract ObjectFactory getObjectFactory()

    - #### getGroovyCompilerFactory

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

    - #### getFeatureFlags

          @Inject
          protected abstract org.gradle.internal.buildoption.FeatureFlags getFeatureFlags()

    - #### getJavaToolchainService

          @Inject
          protected abstract JavaToolchainService getJavaToolchainService()