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()` |
    `org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec>` | `getCompiler()` |
    `FileCollection` | `getGroovyClasspath()` | Returns the classpath containing the version of Groovy to use for compilation.
    `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 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()` |
    `CompileOptions` | `getOptions()` | Returns the options for Java compilation.
    `FileTree` | `getSource()` | Returns the source for this task, after the include and exclude patterns have been applied.
    `void` | `setCompiler​(org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec> compiler)` |
    `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

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

      `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, getServices, 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, toString`

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

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

- - ### Constructor Detail

    - #### GroovyCompile

          public GroovyCompile()

  - ### Method Detail

    - #### compile

          protected void compile()

      Specified by:
        `compile` in class `AbstractCompile`

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

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

      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.

    - #### getCompiler

          @Internal
          public org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec> getCompiler()

    - #### setCompiler

          public void setCompiler​(org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.compile.GroovyJavaJointCompileSpec> compiler)

    - #### getJavaToolChainFactory

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