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. This task can take the following arguments:
- srcdir
- destdir
- classpath
- encoding
- verbose
- failonerror
- includeantruntime
- includejavaruntime
- memoryInitialSize
- memoryMaximumSize
- fork
- stacktrace
- stubdir
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
FieldsModifier and TypeFieldDescriptionprotected File[]protected CompilerConfigurationprotected booleanprotected booleanFields inherited from class org.apache.tools.ant.taskdefs.MatchingTask
filesetFields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapperFields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConfiguredJavac(org.apache.tools.ant.taskdefs.Javac javac) Add the configured nested javac task if present to initiate joint compilation.protected voidaddToCompileList(File[] newFiles) protected GroovyClassLoaderprotected voidprotected voidcompile()org.apache.tools.ant.types.PathAdds a path to the classpath.org.apache.tools.ant.types.PathAdds a path to sourcepath.org.apache.tools.ant.types.PathAdds a path for source compilation.voidexecute()Executes the task.org.apache.tools.ant.types.PathGets 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.booleanGets the failonerror flag.File[]Gets the list of files to be compiled.booleanGets whether or not the ant classpath is to be included in the classpath.booleanGets whether or not the java runtime should be included in this task's classpath.booleanGets the keepStubs flag.booleanGet 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.PathGets the sourcepath to be used for this compilation.org.apache.tools.ant.types.PathGets the source dirs to find the source java files.Gets the stub directory into which the Java source stub files should be generatedRetrieves the compiler bytecode compatibility mode.booleanGet the result of the groovyc task (success or failure).booleanGets the verbose flag.booleanGet the value of the includeDestClasses property.protected CompilationUnitprotected org.apache.tools.ant.types.PathRecreate src.protected voidClear the list of files to be compiled and copied..protected voidScans the directory looking for source files to be compiled.voidsetClasspath(org.apache.tools.ant.types.Path classpath) Set the classpath to be used for this compilation.voidsetClasspathRef(org.apache.tools.ant.types.Reference r) Adds a reference to a classpath defined elsewhere.voidsetDestdir(File destDir) Set the destination directory into which the Java source files should be compiled.voidsetEncoding(String encoding) Sets the file encoding for generated files.voidsetErrorProperty(String errorProperty) The property to set on compilation failure.voidsetExecutable(String forkExecPath) Sets the name of the java executable to use when invoking the compiler in forked mode, ignored otherwise.voidsetFailonerror(boolean fail) Indicates whether the build will continue even if there are compilation errors; defaults to true.voidsetFork(boolean f) If true forks the Groovy compiler.voidsetIncludeantruntime(boolean include) If true, includes Ant's own classpath in the classpath.voidsetIncludeDestClasses(boolean includeDestClasses) This property controls whether to include the destination classes directory in the classpath given to the compiler.voidsetIncludejavaruntime(boolean include) If true, includes the Java runtime libraries in the classpath.voidsetJavaHome(File home) The JDK Home to use when forked.voidsetKeepStubs(boolean keepStubs) Set the keepStubs flag.voidsetListfiles(boolean list) If true, list the source files being handed off to the compiler.voidsetMemoryInitialSize(String memoryInitialSize) The initial size of the memory for the underlying VM if javac is run externally; ignored otherwise.voidsetMemoryMaximumSize(String memoryMaximumSize) The maximum size of the memory for the underlying VM if javac is run externally; ignored otherwise.voidsetProceed(boolean proceed) voidsetScriptBaseClass(String scriptBaseClass) Set the base script class name for the scripts (must derive from Script)voidsetScriptExtension(String scriptExtension) Set the extension to use when searching for Groovy source files.voidsetSourcepath(org.apache.tools.ant.types.Path sourcepath) Set the sourcepath to be used for this compilation.voidsetSourcepathRef(org.apache.tools.ant.types.Reference r) Adds a reference to a source path defined elsewhere.voidsetSrcdir(org.apache.tools.ant.types.Path srcDir) Set the source directories to find the source Java files.voidsetStacktrace(boolean stacktrace) Enable compiler to report stack trace information if a problem occurs during compilation.voidsetStubdir(File stubDir) Set the stub directory into which the Java source stub files should be generated.voidsetTargetBytecode(String version) Sets the bytecode compatibility modevoidsetUpdatedProperty(String updatedProperty) The property to set on compilation success.voidsetVerbose(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, XsetItemsMethods 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, setTaskTypeMethods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation
-
Field Details
-
failOnError
protected boolean failOnError -
listFiles
protected boolean listFiles -
compileList
-
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
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
Get the extension to use when searching for Groovy source files.- Returns:
- the extension of Groovy source files
-
setTargetBytecode
Sets the bytecode compatibility mode- Parameters:
version- the bytecode compatibility mode
-
getTargetBytecode
Retrieves the compiler bytecode compatibility mode.- Returns:
- bytecode compatibility mode. Can be either 1.5 or 1.4.
-
setDestdir
Set the destination directory into which the Java source files should be compiled.- Parameters:
destDir- the destination director
-
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
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
Gets the memoryInitialSize flag.- Returns:
- the memoryInitialSize flag
-
setMemoryMaximumSize
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
Gets the memoryMaximumSize flag.- Returns:
- the memoryMaximumSize flag
-
setEncoding
Sets the file encoding for generated files.- Parameters:
encoding- the file encoding to be used
-
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
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
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
The value of the executable attribute, if any.- Returns:
- the name of the java executable
- Since:
- Groovy 1.8.7
-
setUpdatedProperty
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
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
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
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.BuildExceptionExecutes the task.- Overrides:
executein classorg.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
Scans the directory looking for source files to be compiled. The results are returned in the class variable compileList- Parameters:
srcDir- The source directorydestDir- The destination directoryfiles- An array of filenames
-
addToCompileList
-
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
-
buildClassLoaderFor
-
setStubdir
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
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
-