Package org.codehaus.groovy.ant

# Class Groovyc

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.MatchingTask
org.codehaus.groovy.ant.Groovyc

All Implemented Interfaces:
  `Cloneable`, `org.apache.tools.ant.types.selectors.SelectorContainer`

public class Groovyc extends org.apache.tools.ant.taskdefs.MatchingTask
Compiles Groovy source files using Ant.

Typically involves using Ant from the command-line and an Ant build file such as:

     <?xml version="1.0"?>
     <project name="MyGroovyBuild" default="compile">
       <property name="groovy.home" location="/Path/To/Groovy"/>
       <property name="groovy.version" value="X.Y.Z"/>

       <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
         <classpath>
           <fileset file="${groovy.home}/lib/groovy-${groovy.version}.jar"/>
           <fileset file="${groovy.home}/lib/groovy-ant-${groovy.version}.jar"/>
         </classpath>
       </taskdef>

       <target name="compile" description="compile groovy sources">
         <groovyc srcdir="src" destdir="bin" fork="true" listfiles="true" includeantruntime="false">
           <classpath>
             <fileset dir="${groovy.home}/lib" includes="groovy-*${groovy.version}.jar" excludes="groovy-ant-${groovy.version}.jar"/>
           </classpath>
         </groovyc>
       </target>
     </project>

This task can take the following arguments:

- srcdir
- destdir
- sourcepath
- sourcepathRef
- classpath
- classpathRef
- scriptExtension
- targetBytecode
- listfiles
- failonerror
- proceed
- memoryInitialSize
- memoryMaximumSize
- encoding
- verbose
- includeantruntime
- includejavaruntime
- fork
- javaHome
- executable
- updatedProperty
- errorProperty
- includeDestClasses
- jointCompilationOptions
- stacktrace
- scriptBaseClass
- stubdir
- keepStubs
- forceLookupUnnamedFiles
- configscript
- parameters

And these nested tasks:

- javac

Of these arguments, the srcdir and destdir are required.

When this task executes, it will recursively scan srcdir and destdir looking for Groovy source files to compile. This task makes its compile decision based on timestamp.

A more elaborate build file showing joint compilation:

     <?xml version="1.0"?>
     <project name="MyJointBuild" default="compile">
       <property name="groovy.home" location="/Path/To/Groovy"/>
       <property name="groovy.version" value="X.Y.Z"/>

       <path id="classpath.main">
         <fileset dir="${groovy.home}/lib">
           <include name="groovy-*${groovy.version}.jar"/>
           <exclude name="groovy-ant-${groovy.version}.jar"/>
         </fileset>
       </path>

       <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
         <classpath>
           <fileset file="${groovy.home}/lib/groovy-${groovy.version}.jar"/>
           <fileset file="${groovy.home}/lib/groovy-ant-${groovy.version}.jar"/>
         </classpath>
       </taskdef>

       <target name="clean">
         <delete dir="bin" failonerror="false"/>
       </target>

       <target name="compile" depends="clean" description="compile java and groovy sources">
         <mkdir dir="bin"/>

         <groovyc srcdir="src" destdir="bin" stubdir="stubs" keepStubs="true"
          fork="true" includeantruntime="false" classpathref="classpath.main">
           <javac debug="true" source="1.8" target="1.8"/>
         </groovyc>
       </target>
     </project>

Based on the implementation of the Javac task in Apache Ant.

Can also be used from `AntBuilder` to allow the build file to be scripted in Groovy.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected File[]`
  `compileList`
  Files selected for compilation in the current execution.
  `protected CompilerConfiguration`
  `configuration`
  Compiler configuration produced for the current compilation run.
  `protected boolean`
  `failOnError`
  Whether compilation failures should abort the Ant build.
  `protected boolean`
  `listFiles`
  Whether the task should log every file passed to the compiler.

  ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

  `fileset`

  ### Fields inherited from class org.apache.tools.ant.Task

  `target, taskName, taskType, wrapper`

  ### Fields inherited from class org.apache.tools.ant.ProjectComponent

  `description, location, project`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Groovyc()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addConfiguredJavac(org.apache.tools.ant.taskdefs.Javac javac)`
  Add the configured nested javac task if present to initiate joint compilation.
  `void`
  `addSysproperty(org.apache.tools.ant.types.Environment.Variable sysp)`
  Adds a system property to be passed to the forked compiler as `-Dkey=value`.
  `void`
  `addSyspropertyset(org.apache.tools.ant.types.PropertySet sysp)`
  Adds a set of system properties (Ant `<syspropertyset>`) to be passed to the forked compiler.
  `protected void`
  `addToCompileList(File[] newFiles)`
  Appends newly discovered files to the current compile list.
  `protected GroovyClassLoader`
  `buildClassLoaderFor()`
  Builds the class loader used for in-process compilation.
  `protected void`
  `checkParameters()`
  Validates the user-supplied task parameters.
  `protected void`
  `compile()`
  Compiles the files accumulated in `compileList`.
  `org.apache.tools.ant.types.Path`
  `createClasspath()`
  Adds a path to the classpath.
  `org.apache.tools.ant.types.Commandline.Argument`
  `createJvmarg()`
  Adds a JVM argument to be passed to the forked compiler.
  `org.apache.tools.ant.types.Path`
  `createSourcepath()`
  Adds a path to sourcepath.
  `org.apache.tools.ant.types.Path`
  `createSrc()`
  Adds a path for source compilation.
  `void`
  `execute()`
  Executes the task.
  `org.apache.tools.ant.types.Path`
  `getClasspath()`
  Gets the classpath to be used for this compilation.
  `String`
  `getConfigscript()`
  Get the configuration file used to customize the compilation configuration.
  `File`
  `getDestdir()`
  Gets the destination directory into which the java source files should be compiled.
  `String`
  `getEncoding()`
  Returns the encoding to be used when creating files.
  `String`
  `getExecutable()`
  The value of the executable attribute, if any.
  `boolean`
  `getFailonerror()`
  Gets the failonerror flag.
  `File[]`
  `getFileList()`
  Gets the list of files to be compiled.
  `boolean`
  `getForceLookupUnnamedFiles()`
  Gets the forceLookupUnnamedFiles flag.
  `boolean`
  `getIncludeantruntime()`
  Gets whether the ant classpath is to be included in the classpath.
  `boolean`
  `getIncludejavaruntime()`
  Gets whether the java runtime should be included in this task's classpath.
  `boolean`
  `getIndy()`
  Deprecated.
  `boolean`
  `getKeepStubs()`
  Gets the keepStubs flag.
  `boolean`
  `getListfiles()`
  Get the listfiles flag.
  `String`
  `getMemoryInitialSize()`
  Gets the memoryInitialSize flag.
  `String`
  `getMemoryMaximumSize()`
  Gets the memoryMaximumSize flag.
  `boolean`
  `getParameters()`
  Returns true if parameter metadata generation has been enabled.
  `boolean`
  `getPreviewFeatures()`
  Returns true if preview features has been enabled.
  `String`
  `getScriptBaseClass()`
  Get the base script class name for the scripts (must derive from Script)
  `String`
  `getScriptExtension()`
  Get the extension to use when searching for Groovy source files.
  `org.apache.tools.ant.types.Path`
  `getSourcepath()`
  Gets the sourcepath to be used for this compilation.
  `org.apache.tools.ant.types.Path`
  `getSrcdir()`
  Gets the source dirs to find the source java files.
  `File`
  `getStubdir()`
  Gets the stub directory into which the Java source stub files should be generated
  `String`
  `getTargetBytecode()`
  Retrieves the compiler bytecode compatibility level.
  `boolean`
  `getTaskSuccess()`
  Get the result of the groovyc task (success or failure).
  `boolean`
  `getVerbose()`
  Gets the verbose flag.
  `boolean`
  `isIncludeDestClasses()`
  Get the value of the includeDestClasses property.
  `protected CompilationUnit`
  `makeCompileUnit()`
  Deprecated.
  This method is not in use anymore.
  `protected CompilationUnit`
  `makeCompileUnit(GroovyClassLoader loader)`
  Creates the compilation unit to use for the current run.
  `protected org.apache.tools.ant.types.Path`
  `recreateSrc()`
  Recreate src.
  `protected void`
  `resetFileLists()`
  Clears the list of files to be compiled and copied.
  `protected void`
  `scanDir(File srcDir, File destDir, String[] files)`
  Scans the directory looking for source files to be compiled.
  `void`
  `setClasspath(org.apache.tools.ant.types.Path classpath)`
  Set the classpath to be used for this compilation.
  `void`
  `setClasspathRef(org.apache.tools.ant.types.Reference r)`
  Adds a reference to a classpath defined elsewhere.
  `void`
  `setConfigscript(String configscript)`
  Set the configuration file used to customize the compilation configuration.
  `void`
  `setDestdir(File destDir)`
  Set the destination directory into which the Java source files should be compiled.
  `void`
  `setEncoding(String encoding)`
  Sets the file encoding for generated files.
  `void`
  `setErrorProperty(String errorProperty)`
  The property to set on compilation failure.
  `void`
  `setExecutable(String forkExecPath)`
  Sets the name of the java executable to use when invoking the compiler in forked mode, ignored otherwise.
  `void`
  `setFailonerror(boolean fail)`
  Indicates whether the build will continue even if there are compilation errors; defaults to true.
  `void`
  `setForceLookupUnnamedFiles(boolean forceLookupUnnamedFiles)`
  Set the forceLookupUnnamedFiles flag.
  `void`
  `setFork(boolean f)`
  If true forks the Groovy compiler.
  `void`
  `setIncludeantruntime(boolean include)`
  If true, includes Ant's own classpath in the classpath.
  `void`
  `setIncludeDestClasses(boolean includeDestClasses)`
  This property controls whether to include the destination classes directory in the classpath given to the compiler.
  `void`
  `setIncludejavaruntime(boolean include)`
  If true, includes the Java runtime libraries in the classpath.
  `void`
  `setIndy(boolean indy)`
  Deprecated.
  `void`
  `setInheritAll(boolean inheritAll)`
  If true, pass all properties from the parent Ant project to the forked JVM as system properties so they can be read via `System.getProperty(name)`.
  `void`
  `setJavaHome(File home)`
  The JDK Home to use when forked.
  `void`
  `setKeepStubs(boolean keepStubs)`
  Set the keepStubs flag.
  `void`
  `setListfiles(boolean list)`
  If true, list the source files being handed off to the compiler.
  `void`
  `setMemoryInitialSize(String memoryInitialSize)`
  The initial size of the memory for the underlying VM if javac is run externally; ignored otherwise.
  `void`
  `setMemoryMaximumSize(String memoryMaximumSize)`
  The maximum size of the memory for the underlying VM if javac is run externally; ignored otherwise.
  `void`
  `setParameters(boolean parameters)`
  If true, generates metadata for reflection on method parameter names (jdk8+ only).
  `void`
  `setPreviewFeatures(boolean previewFeatures)`
  If true, enable preview Java features (JEP 12) (jdk12+ only).
  `void`
  `setProceed(boolean proceed)`
  `void`
  `setScriptBaseClass(String scriptBaseClass)`
  Set the base script class name for the scripts (must derive from Script)
  `void`
  `setScriptExtension(String scriptExtension)`
  Set the extension to use when searching for Groovy source files.
  `void`
  `setSourcepath(org.apache.tools.ant.types.Path sourcepath)`
  Set the sourcepath to be used for this compilation.
  `void`
  `setSourcepathRef(org.apache.tools.ant.types.Reference r)`
  Adds a reference to a source path defined elsewhere.
  `void`
  `setSrcdir(org.apache.tools.ant.types.Path srcDir)`
  Set the source directories to find the source Java files.
  `void`
  `setStacktrace(boolean stacktrace)`
  Enable compiler to report stack trace information if a problem occurs during compilation.
  `void`
  `setStubdir(File stubDir)`
  Set the stub directory into which the Java source stub files should be generated.
  `void`
  `setTargetBytecode(String version)`
  Sets the bytecode compatibility level.
  `void`
  `setUpdatedProperty(String updatedProperty)`
  The property to set on compilation success.
  `void`
  `setVerbose(boolean verbose)`
  Enable verbose compiling which will display which files are being compiled.

  ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

  `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

  ### Methods inherited from class org.apache.tools.ant.Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

  ### Methods inherited from class org.apache.tools.ant.ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation`

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

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

- ## Field Details

  - ### failOnError

    protected boolean failOnError
    Whether compilation failures should abort the Ant build.

  - ### listFiles

    protected boolean listFiles
    Whether the task should log every file passed to the compiler.

  - ### compileList

    protected File[] compileList
    Files selected for compilation in the current execution.

  - ### configuration

    protected CompilerConfiguration configuration
    Compiler configuration produced for the current compilation run.

- ## Constructor Details

  - ### Groovyc

    public Groovyc()

- ## Method Details

  - ### createSrc

    public org.apache.tools.ant.types.Path createSrc()
    Adds a path for source compilation.
    Returns:
      a nested src element.

  - ### recreateSrc

    protected org.apache.tools.ant.types.Path recreateSrc()
    Recreate src.
    Returns:
      a nested src element.

  - ### setSrcdir

    public void setSrcdir(org.apache.tools.ant.types.Path srcDir)
    Set the source directories to find the source Java files.
    Parameters:
      `srcDir` - the source directories as a path

  - ### getSrcdir

    public org.apache.tools.ant.types.Path getSrcdir()
    Gets the source dirs to find the source java files.
    Returns:
      the source directories as a path

  - ### setScriptExtension

    public void setScriptExtension(String scriptExtension)
    Set the extension to use when searching for Groovy source files. Accepts extensions in the form *.groovy, .groovy or groovy
    Parameters:
      `scriptExtension` - the extension of Groovy source files

  - ### getScriptExtension

    public String getScriptExtension()
    Get the extension to use when searching for Groovy source files.
    Returns:
      the extension of Groovy source files

  - ### setTargetBytecode

    public void setTargetBytecode(String version)
    Sets the bytecode compatibility level. The parameter can take one of the values in `CompilerConfiguration.ALLOWED_JDKS`.
    Parameters:
      `version` - the bytecode compatibility level

  - ### getTargetBytecode

    public String getTargetBytecode()
    Retrieves the compiler bytecode compatibility level.
    Returns:
      bytecode compatibility level. Can be one of the values in `CompilerConfiguration.ALLOWED_JDKS`.

  - ### setDestdir

    public void setDestdir(File destDir)
    Set the destination directory into which the Java source files should be compiled.
    Parameters:
      `destDir` - the destination director

  - ### getDestdir

    public File getDestdir()
    Gets the destination directory into which the java source files should be compiled.
    Returns:
      the destination directory

  - ### setSourcepath

    public void setSourcepath(org.apache.tools.ant.types.Path sourcepath)
    Set the sourcepath to be used for this compilation.
    Parameters:
      `sourcepath` - the source path

  - ### getSourcepath

    public org.apache.tools.ant.types.Path getSourcepath()
    Gets the sourcepath to be used for this compilation.
    Returns:
      the source path

  - ### createSourcepath

    public org.apache.tools.ant.types.Path createSourcepath()
    Adds a path to sourcepath.
    Returns:
      a sourcepath to be configured

  - ### setSourcepathRef

    public void setSourcepathRef(org.apache.tools.ant.types.Reference r)
    Adds a reference to a source path defined elsewhere.
    Parameters:
      `r` - a reference to a source path

  - ### setClasspath

    public void setClasspath(org.apache.tools.ant.types.Path classpath)
    Set the classpath to be used for this compilation.
    Parameters:
      `classpath` - an Ant Path object containing the compilation classpath.

  - ### getClasspath

    public org.apache.tools.ant.types.Path getClasspath()
    Gets the classpath to be used for this compilation.
    Returns:
      the class path

  - ### createClasspath

    public org.apache.tools.ant.types.Path createClasspath()
    Adds a path to the classpath.
    Returns:
      a class path to be configured

  - ### setClasspathRef

    public void setClasspathRef(org.apache.tools.ant.types.Reference r)
    Adds a reference to a classpath defined elsewhere.
    Parameters:
      `r` - a reference to a classpath

  - ### setListfiles

    public void setListfiles(boolean list)
    If true, list the source files being handed off to the compiler. Default is false.
    Parameters:
      `list` - if true list the source files

  - ### getListfiles

    public boolean getListfiles()
    Get the listfiles flag.
    Returns:
      the listfiles flag

  - ### setFailonerror

    public void setFailonerror(boolean fail)
    Indicates whether the build will continue even if there are compilation errors; defaults to true.
    Parameters:
      `fail` - if true halt the build on failure

  - ### setProceed

    public void setProceed(boolean proceed)
    Parameters:
      `proceed` - inverse of failonerror

  - ### getFailonerror

    public boolean getFailonerror()
    Gets the failonerror flag.
    Returns:
      the failonerror flag

  - ### setMemoryInitialSize

    public void setMemoryInitialSize(String memoryInitialSize)
    The initial size of the memory for the underlying VM if javac is run externally; ignored otherwise. Defaults to the standard VM memory setting. (Examples: 83886080, 81920k, or 80m)
    Parameters:
      `memoryInitialSize` - string to pass to VM

  - ### getMemoryInitialSize

    public String getMemoryInitialSize()
    Gets the memoryInitialSize flag.
    Returns:
      the memoryInitialSize flag

  - ### setMemoryMaximumSize

    public void setMemoryMaximumSize(String memoryMaximumSize)
    The maximum size of the memory for the underlying VM if javac is run externally; ignored otherwise. Defaults to the standard VM memory setting. (Examples: 83886080, 81920k, or 80m)
    Parameters:
      `memoryMaximumSize` - string to pass to VM

  - ### getMemoryMaximumSize

    public String getMemoryMaximumSize()
    Gets the memoryMaximumSize flag.
    Returns:
      the memoryMaximumSize flag

  - ### setEncoding

    public void setEncoding(String encoding)
    Sets the file encoding for generated files.
    Parameters:
      `encoding` - the file encoding to be used

  - ### getEncoding

    public String getEncoding()
    Returns the encoding to be used when creating files.
    Returns:
      the file encoding to use

  - ### setVerbose

    public void setVerbose(boolean verbose)
    Enable verbose compiling which will display which files are being compiled. Default is false.

  - ### getVerbose

    public boolean getVerbose()
    Gets the verbose flag.
    Returns:
      the verbose flag

  - ### setIncludeantruntime

    public void setIncludeantruntime(boolean include)
    If true, includes Ant's own classpath in the classpath. Default is true. If setting to false and using groovyc in conjunction with AntBuilder you might need to explicitly add the Groovy jar(s) to the groovyc classpath using a nested classpath task.
    Parameters:
      `include` - if true, includes Ant's own classpath in the classpath

  - ### getIncludeantruntime

    public boolean getIncludeantruntime()
    Gets whether the ant classpath is to be included in the classpath.
    Returns:
      whether the ant classpath is to be included in the classpath

  - ### setIncludejavaruntime

    public void setIncludejavaruntime(boolean include)
    If true, includes the Java runtime libraries in the classpath. Default is false.
    Parameters:
      `include` - if true, includes the Java runtime libraries in the classpath

  - ### getIncludejavaruntime

    public boolean getIncludejavaruntime()
    Gets whether the java runtime should be included in this task's classpath.
    Returns:
      the includejavaruntime attribute

  - ### setFork

    public void setFork(boolean f)
    If true forks the Groovy compiler. Default is false.
    Parameters:
      `f` - "true|false|on|off|yes|no"

  - ### setJavaHome

    public void setJavaHome(File home)
    The JDK Home to use when forked. Ignored if "executable" is specified.
    Parameters:
      `home` - the java.home value to use, default is the current JDK's home

  - ### setExecutable

    public void setExecutable(String forkExecPath)
    Sets the name of the java executable to use when invoking the compiler in forked mode, ignored otherwise.
    Parameters:
      `forkExecPath` - the name of the executable
    Since:
      Groovy 1.8.7

  - ### getExecutable

    public String getExecutable()
    The value of the executable attribute, if any.
    Returns:
      the name of the java executable
    Since:
      Groovy 1.8.7

  - ### setUpdatedProperty

    public void setUpdatedProperty(String updatedProperty)
    The property to set on compilation success. This property will not be set if the compilation fails, or if there are no files to compile.
    Parameters:
      `updatedProperty` - the property name to use.

  - ### setErrorProperty

    public void setErrorProperty(String errorProperty)
    The property to set on compilation failure. This property will be set if the compilation fails.
    Parameters:
      `errorProperty` - the property name to use.

  - ### setIncludeDestClasses

    public void setIncludeDestClasses(boolean includeDestClasses)
    This property controls whether to include the destination classes directory in the classpath given to the compiler. The default value is "true".
    Parameters:
      `includeDestClasses` - the value to use.

  - ### isIncludeDestClasses

    public boolean isIncludeDestClasses()
    Get the value of the includeDestClasses property.
    Returns:
      the value.

  - ### getTaskSuccess

    public boolean getTaskSuccess()
    Get the result of the groovyc task (success or failure).
    Returns:
      true if compilation succeeded, or was not necessary, false if the compilation failed.

  - ### addConfiguredJavac

    public void addConfiguredJavac(org.apache.tools.ant.taskdefs.Javac javac)
    Add the configured nested javac task if present to initiate joint compilation.

  - ### createJvmarg

    public org.apache.tools.ant.types.Commandline.Argument createJvmarg()
    Adds a JVM argument to be passed to the forked compiler. Only takes effect when `fork` is true. Use a nested `<jvmarg>` element, e.g. `<jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED"/>`.
    Returns:
      a new `Commandline.Argument` that can be configured by Ant
    Since:
      6.0.0

  - ### addSysproperty

    public void addSysproperty(org.apache.tools.ant.types.Environment.Variable sysp)
    Adds a system property to be passed to the forked compiler as `-Dkey=value`. Only takes effect when `fork` is true.
    Parameters:
      `sysp` - the system property
    Since:
      6.0.0

  - ### addSyspropertyset

    public void addSyspropertyset(org.apache.tools.ant.types.PropertySet sysp)
    Adds a set of system properties (Ant `<syspropertyset>`) to be passed to the forked compiler. Only takes effect when `fork` is true.
    Parameters:
      `sysp` - the property set
    Since:
      6.0.0

  - ### setInheritAll

    public void setInheritAll(boolean inheritAll)
    If true, pass all properties from the parent Ant project to the forked JVM as system properties so they can be read via `System.getProperty(name)`. Only takes effect when `fork` is true. Defaults to false.

    For fine-grained control, use a nested `<sysproperty>` or `<syspropertyset>` instead. Both may be combined; explicit nested entries take precedence on name collision.

    Parameters:
      `inheritAll` - true to inherit all Ant properties into the forked JVM
    Since:
      6.0.0

  - ### setStacktrace

    public void setStacktrace(boolean stacktrace)
    Enable compiler to report stack trace information if a problem occurs during compilation. Default is false.

  - ### setIndy

    @Deprecated public void setIndy(boolean indy)
    Deprecated.
    Legacy method to set the indy flag (only true is allowed)
    Parameters:
      `indy` - true means invokedynamic support is active

  - ### getIndy

    @Deprecated public boolean getIndy()
    Deprecated.
    Get the value of the indy flag (always true).

  - ### setScriptBaseClass

    public void setScriptBaseClass(String scriptBaseClass)
    Set the base script class name for the scripts (must derive from Script)
    Parameters:
      `scriptBaseClass` - Base class name for scripts (must derive from Script)

  - ### getScriptBaseClass

    public String getScriptBaseClass()
    Get the base script class name for the scripts (must derive from Script)
    Returns:
      Base class name for scripts (must derive from Script)

  - ### getConfigscript

    public String getConfigscript()
    Get the configuration file used to customize the compilation configuration.
    Returns:
      a path to a configuration script

  - ### setConfigscript

    public void setConfigscript(String configscript)
    Set the configuration file used to customize the compilation configuration.
    Parameters:
      `configscript` - a path to a configuration script

  - ### setStubdir

    public void setStubdir(File stubDir)
    Set the stub directory into which the Java source stub files should be generated. The directory need not exist and will not be deleted automatically - though its contents will be cleared unless 'keepStubs' is true. Ignored when forked.
    Parameters:
      `stubDir` - the stub directory

  - ### getStubdir

    public File getStubdir()
    Gets the stub directory into which the Java source stub files should be generated
    Returns:
      the stub directory

  - ### setKeepStubs

    public void setKeepStubs(boolean keepStubs)
    Set the keepStubs flag. Defaults to false. Set to true for debugging. Ignored when forked.
    Parameters:
      `keepStubs` - should stubs be retained

  - ### getKeepStubs

    public boolean getKeepStubs()
    Gets the keepStubs flag.
    Returns:
      the keepStubs flag

  - ### setForceLookupUnnamedFiles

    public void setForceLookupUnnamedFiles(boolean forceLookupUnnamedFiles)
    Set the forceLookupUnnamedFiles flag. Defaults to false.

    The Groovyc Ant task is frequently used in the context of a build system that knows the complete list of source files to be compiled. In such a context, it is wasteful for the Groovy compiler to go searching the classpath when looking for source files and hence by default the Groovyc Ant task calls the compiler in a special mode with such searching turned off. If you wish the compiler to search for source files then you need to set this flag to `true`.

    Parameters:
      `forceLookupUnnamedFiles` - should unnamed source files be searched for on the classpath

  - ### getForceLookupUnnamedFiles

    public boolean getForceLookupUnnamedFiles()
    Gets the forceLookupUnnamedFiles flag.
    Returns:
      the forceLookupUnnamedFiles flag

  - ### setParameters

    public void setParameters(boolean parameters)
    If true, generates metadata for reflection on method parameter names (jdk8+ only). Defaults to false.
    Parameters:
      `parameters` - set to true to generate metadata.

  - ### getParameters

    public boolean getParameters()
    Returns true if parameter metadata generation has been enabled.

  - ### setPreviewFeatures

    public void setPreviewFeatures(boolean previewFeatures)
    If true, enable preview Java features (JEP 12) (jdk12+ only).
    Parameters:
      `previewFeatures` - set to true to enable preview features

  - ### getPreviewFeatures

    public boolean getPreviewFeatures()
    Returns true if preview features has been enabled.

  - ### execute

    public void execute() throws org.apache.tools.ant.BuildException
    Executes the task.
    Overrides:
      `execute` in class `org.apache.tools.ant.Task`
    Throws:
      `org.apache.tools.ant.BuildException` - if an error occurs

  - ### resetFileLists

    protected void resetFileLists()
    Clears the list of files to be compiled and copied.

  - ### scanDir

    protected void scanDir(File srcDir, File destDir, String[] files)
    Scans the directory looking for source files to be compiled. The results are returned in the class variable compileList
    Parameters:
      `srcDir` - The source directory
      `destDir` - The destination directory
      `files` - An array of filenames

  - ### addToCompileList

    protected void addToCompileList(File[] newFiles)
    Appends newly discovered files to the current compile list.
    Parameters:
      `newFiles` - the files to add

  - ### getFileList

    public File[] getFileList()
    Gets the list of files to be compiled.
    Returns:
      the list of files as an array

  - ### checkParameters

    protected void checkParameters() throws org.apache.tools.ant.BuildException
    Validates the user-supplied task parameters.
    Throws:
      `org.apache.tools.ant.BuildException` - if required attributes are missing or invalid

  - ### compile

    protected void compile()
    Compiles the files accumulated in `compileList`.

  - ### makeCompileUnit

    @Deprecated protected CompilationUnit makeCompileUnit()
    Deprecated.
    This method is not in use anymore. Use `makeCompileUnit(GroovyClassLoader)` instead.

  - ### makeCompileUnit

    protected CompilationUnit makeCompileUnit(GroovyClassLoader loader)
    Creates the compilation unit to use for the current run.
    Parameters:
      `loader` - the class loader that should back compilation
    Returns:
      the configured compilation unit

  - ### buildClassLoaderFor

    protected GroovyClassLoader buildClassLoaderFor()
    Builds the class loader used for in-process compilation.
    Returns:
      the class loader for compilation