public class Groovyc
extends org.apache.tools.ant.taskdefs.MatchingTask
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:
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.
Modifier and Type | Field and Description |
---|---|
protected File[] |
compileList |
protected CompilerConfiguration |
configuration |
protected boolean |
failOnError |
protected boolean |
listFiles |
Constructor and Description |
---|
Groovyc() |
Modifier and Type | Method and 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 GroovyClassLoader |
buildClassLoaderFor() |
protected void |
checkParameters() |
protected void |
compile() |
org.apache.tools.ant.types.Path |
createClasspath()
Adds a path to the classpath.
|
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 or not the ant classpath is to be included in the classpath.
|
boolean |
getIncludejavaruntime()
Gets whether or not the java runtime should be included in this
task's classpath.
|
boolean |
getIndy()
Get the value of the indy flag.
|
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. Use
makeCompileUnit(GroovyClassLoader) instead. |
protected CompilationUnit |
makeCompileUnit(GroovyClassLoader loader) |
protected org.apache.tools.ant.types.Path |
recreateSrc()
Recreate src.
|
protected void |
resetFileLists()
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 |
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 useIndy)
Set the indy flag.
|
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.
|
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
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
protected boolean failOnError
protected boolean listFiles
protected File[] compileList
protected CompilerConfiguration configuration
public org.apache.tools.ant.types.Path createSrc()
protected org.apache.tools.ant.types.Path recreateSrc()
public void setSrcdir(org.apache.tools.ant.types.Path srcDir)
srcDir
- the source directories as a pathpublic org.apache.tools.ant.types.Path getSrcdir()
public void setScriptExtension(String scriptExtension)
scriptExtension
- the extension of Groovy source filespublic String getScriptExtension()
public void setTargetBytecode(String version)
CompilerConfiguration.ALLOWED_JDKS
.version
- the bytecode compatibility levelpublic String getTargetBytecode()
CompilerConfiguration.ALLOWED_JDKS
.public void setDestdir(File destDir)
destDir
- the destination directorpublic File getDestdir()
public void setSourcepath(org.apache.tools.ant.types.Path sourcepath)
sourcepath
- the source pathpublic org.apache.tools.ant.types.Path getSourcepath()
public org.apache.tools.ant.types.Path createSourcepath()
public void setSourcepathRef(org.apache.tools.ant.types.Reference r)
r
- a reference to a source pathpublic void setClasspath(org.apache.tools.ant.types.Path classpath)
classpath
- an Ant Path object containing the compilation classpath.public org.apache.tools.ant.types.Path getClasspath()
public org.apache.tools.ant.types.Path createClasspath()
public void setClasspathRef(org.apache.tools.ant.types.Reference r)
r
- a reference to a classpathpublic void setListfiles(boolean list)
list
- if true list the source filespublic boolean getListfiles()
public void setFailonerror(boolean fail)
fail
- if true halt the build on failurepublic void setProceed(boolean proceed)
proceed
- inverse of failonerrorpublic boolean getFailonerror()
public void setMemoryInitialSize(String memoryInitialSize)
memoryInitialSize
- string to pass to VMpublic String getMemoryInitialSize()
public void setMemoryMaximumSize(String memoryMaximumSize)
memoryMaximumSize
- string to pass to VMpublic String getMemoryMaximumSize()
public void setEncoding(String encoding)
encoding
- the file encoding to be usedpublic String getEncoding()
public void setVerbose(boolean verbose)
public boolean getVerbose()
public void setIncludeantruntime(boolean include)
include
- if true, includes Ant's own classpath in the classpathpublic boolean getIncludeantruntime()
public void setIncludejavaruntime(boolean include)
include
- if true, includes the Java runtime libraries in the classpathpublic boolean getIncludejavaruntime()
public void setFork(boolean f)
f
- "true|false|on|off|yes|no"public void setJavaHome(File home)
home
- the java.home value to use, default is the current JDK's homepublic void setExecutable(String forkExecPath)
forkExecPath
- the name of the executablepublic String getExecutable()
public void setUpdatedProperty(String updatedProperty)
updatedProperty
- the property name to use.public void setErrorProperty(String errorProperty)
errorProperty
- the property name to use.public void setIncludeDestClasses(boolean includeDestClasses)
includeDestClasses
- the value to use.public boolean isIncludeDestClasses()
public boolean getTaskSuccess()
public void addConfiguredJavac(org.apache.tools.ant.taskdefs.Javac javac)
public void setStacktrace(boolean stacktrace)
public void setIndy(boolean useIndy)
useIndy
- the indy flagpublic boolean getIndy()
public void setScriptBaseClass(String scriptBaseClass)
scriptBaseClass
- Base class name for scripts (must derive from Script)public String getScriptBaseClass()
public String getConfigscript()
public void setConfigscript(String configscript)
configscript
- a path to a configuration scriptpublic void setStubdir(File stubDir)
stubDir
- the stub directorypublic File getStubdir()
public void setKeepStubs(boolean keepStubs)
keepStubs
- should stubs be retainedpublic boolean getKeepStubs()
public void setForceLookupUnnamedFiles(boolean forceLookupUnnamedFiles)
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
.
forceLookupUnnamedFiles
- should unnamed source files be searched for on the classpathpublic boolean getForceLookupUnnamedFiles()
public void setParameters(boolean parameters)
parameters
- set to true to generate metadata.public boolean getParameters()
public void setPreviewFeatures(boolean previewFeatures)
previewFeatures
- set to true to enable preview featurespublic boolean getPreviewFeatures()
public void execute() throws org.apache.tools.ant.BuildException
execute
in class org.apache.tools.ant.Task
org.apache.tools.ant.BuildException
- if an error occursprotected void resetFileLists()
protected void scanDir(File srcDir, File destDir, String[] files)
srcDir
- The source directorydestDir
- The destination directoryfiles
- An array of filenamesprotected void addToCompileList(File[] newFiles)
public File[] getFileList()
protected void checkParameters() throws org.apache.tools.ant.BuildException
org.apache.tools.ant.BuildException
protected void compile()
@Deprecated protected CompilationUnit makeCompileUnit()
makeCompileUnit(GroovyClassLoader)
instead.protected CompilationUnit makeCompileUnit(GroovyClassLoader loader)
protected GroovyClassLoader buildClassLoaderFor()