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. This task can take the following arguments:
  • srcdir
  • destdir
  • classpath
  • encoding
  • verbose
  • failonerror
  • includeantruntime
  • includejavaruntime
  • memoryInitialSize
  • memoryMaximumSize
  • fork
  • stacktrace
  • stubdir
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.

Based heavily on the Javac implementation in Ant.

Author:
James Strachan, Hein Meling, Russel Winder, Danno Ferrin, Paul King
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected File[]
     
     
    protected boolean
     
    protected boolean
     

    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
     
  • 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.
    protected void
    addToCompileList(File[] newFiles)
     
     
    protected void
     
    protected void
     
    org.apache.tools.ant.types.Path
    Adds a path to the classpath.
    org.apache.tools.ant.types.Path
    Adds a path to sourcepath.
    org.apache.tools.ant.types.Path
    Adds a path for source compilation.
    void
    Executes the task.
    org.apache.tools.ant.types.Path
    Gets the classpath to be used for this compilation.
    Gets the destination directory into which the java source files should be compiled.
    Returns the encoding to be used when creating files.
    The value of the executable attribute, if any.
    boolean
    Gets the failonerror flag.
    Gets the list of files to be compiled.
    boolean
    Gets whether or not the ant classpath is to be included in the classpath.
    boolean
    Gets whether or not the java runtime should be included in this task's classpath.
    boolean
    Gets the keepStubs flag.
    boolean
    Get the listfiles flag.
    Gets the memoryInitialSize flag.
    Gets the memoryMaximumSize flag.
    Get the base script class name for the scripts (must derive from Script)
    Get the extension to use when searching for Groovy source files.
    org.apache.tools.ant.types.Path
    Gets the sourcepath to be used for this compilation.
    org.apache.tools.ant.types.Path
    Gets the source dirs to find the source java files.
    Gets the stub directory into which the Java source stub files should be generated
    Retrieves the compiler bytecode compatibility mode.
    boolean
    Get the result of the groovyc task (success or failure).
    boolean
    Gets the verbose flag.
    boolean
    Get the value of the includeDestClasses property.
    protected CompilationUnit
     
    protected org.apache.tools.ant.types.Path
    Recreate src.
    protected void
    Clear 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
    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
    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
    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
    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
    Sets the bytecode compatibility mode
    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
    • listFiles

      protected boolean listFiles
    • compileList

      protected File[] compileList
    • configuration

      protected CompilerConfiguration configuration
  • 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 mode
      Parameters:
      version - the bytecode compatibility mode
    • getTargetBytecode

      public String getTargetBytecode()
      Retrieves the compiler bytecode compatibility mode.
      Returns:
      bytecode compatibility mode. Can be either 1.5 or 1.4.
    • 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 or not the ant classpath is to be included in the classpath.
      Returns:
      whether or not 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 or not 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.
    • setStacktrace

      public void setStacktrace(boolean stacktrace)
      Enable compiler to report stack trace information if a problem occurs during compilation. Default is false.
    • 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)
    • 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()
      Clear 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)
    • 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
      Throws:
      org.apache.tools.ant.BuildException
    • compile

      protected void compile()
    • makeCompileUnit

      protected CompilationUnit makeCompileUnit()
    • buildClassLoaderFor

      protected GroovyClassLoader buildClassLoaderFor()
    • 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