Overview of Apache Ant Tasks
Given the large number of tasks available with Ant, it may be difficult to get an overall view of what each task can do. The following tables provide a short description of each task and a link to the complete documentation.
Archive Tasks
Audit/Coverage Tasks
Compile Tasks
Deployment Tasks
Documentation Tasks
EJB Tasks
Execution Tasks
File Tasks
Java2 Extensions Tasks
Logging Tasks
Mail Tasks
Miscellaneous Tasks
Pre-process Tasks
Property Tasks
Remote Tasks
SCM Tasks
Testing Tasks
Archive Tasks [Back to top]
Task Name Description BUnzip2 Expands a file packed using GZip or BZip2.
BZip2 Packs a file using the GZip or BZip2 algorithm. This task does not do any dependency checking; the output file is always generated
Cab Creates Microsoft CAB archive files. It is invoked similar to the Jar or Zip tasks. This task will work on Windows using the external cabarc tool (provided by Microsoft), which must be located in your executable path.
Ear An extension of the Jar task with special treatment for files that should end up in an Enterprise Application archive.
GUnzip Expands a GZip file.
GZip GZips a set of files.
Jar Jars a set of files.
Jlink Deprecated. Use the
zipfileset
andzipgroupfileset
attributes of the Jar or Zip tasks instead.Manifest Creates a manifest file.
Rpm Invokes the rpm executable to build a Linux installation file. This task currently only works on Linux or other Unix platforms with RPM support.
SignJar Signs a jar or zip file with the javasign command-line tool.
Tar Creates a tar archive.
Unjar Unzips a jarfile.
Untar Untars a tarfile.
Unwar Unzips a warfile.
Unzip Unzips a zipfile.
War An extension of the Jar task with special treatment for files that should end up in the
WEB-INF/lib
,WEB-INF/classes
, orWEB-INF
directories of the Web Application Archive.Zip Creates a zipfile.
Audit/Coverage Tasks [Back to top]
Task Name Description JDepend Invokes the JDepend parser. This parser "traverses a set of Java source-file directories and generates design-quality metrics for each Java package".
Compile Tasks [Back to top]
Task Name Description Depend Determines which classfiles are out-of-date with respect to their source, removing the classfiles of any other classes that depend on the out-of-date classes, forcing the re-compile of the removed classfiles. Typically used in conjunction with the Javac task.
Javac Compiles the specified source file(s) within the running (Ant) VM, or in another VM if the
fork
attribute is specified.Apt Runs the annotation processor tool (apt), and then optionally compiles the original code, and any generated source code.
JspC Runs the JSP compiler. It can be used to precompile JSP pages for fast initial invocation of JSP pages, deployment on a server without the full JDK installed, or simply to syntax-check the pages without deploying them. The Javac task can be used to compile the generated Java source. (For Weblogic JSP compiles, see the Wljspc task.)
NetRexxC Compiles a NetRexx source tree within the running (Ant) VM.
Rmic Runs the rmic compiler on the specified file(s).
Wljspc Compiles JSP pages using Weblogic's JSP compiler, weblogic.jspc. (For non-Weblogic JSP compiles, see the JspC task.
Deployment Tasks [Back to top]
Task Name Description ServerDeploy Task to run a "hot" deployment tool for vendor-specific J2EE server.
Documentation Tasks [Back to top]
Task Name Description Javadoc/Javadoc2 Generates code documentation using the javadoc tool. The Javadoc2 task is deprecated; use the Javadoc task instead.
EJB Tasks [Back to top]
Task Name Description EJB Tasks (See the documentation describing the EJB tasks.)
Execution Tasks [Back to top]
Task Name Description Ant Runs Ant on a supplied buildfile, optionally passing properties (with possibly new values). This task can be used to build sub-projects.
AntCall Runs another target within the same buildfile, optionally passing properties (with possibly new values).
Apply/ExecOn Executes a system command. When the
os
attribute is specified, the command is only executed when Ant is run on one of the specified operating systems.Dependset This task compares a set of source files with a set of target files. If any of the source files is newer than any of the target files, all the target files are removed.
Exec Executes a system command. When the
os
attribute is specified, the command is only executed when Ant is run on one of the specified operating systems.Java Executes a Java class within the running (Ant) VM, or in another VM if the
fork
attribute is specified.Parallel A container task that can contain other Ant tasks. Each nested task specified within the
<parallel>
tag will be executed in its own thread.Sequential A container task that can contain other Ant tasks. The nested tasks are simply executed in sequence. Its primary use is to support the sequential execution of a subset of tasks within the
<parallel>
tag.Sleep A task for suspending execution for a specified period of time. Useful when a build or deployment process requires an interval between tasks.
Subant Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.
Waitfor Blocks execution until a set of specified conditions become true. This task is intended to be used with the Parallel task to synchronize a set of processes.
File Tasks [Back to top]
Task Name Description Attrib Changes the permissions and/or attributes of a file or all files inside the specified directories. Currently, it has effect only under Windows.
Checksum Generates a checksum for a file or set of files. This task can also be used to perform checksum verifications.
Chgrp Changes the group ownership of a file or all files inside the specified directories. Currently, it has effect only under Unix.
Chmod Changes the permissions of a file or all files inside the specified directories. Currently, it has effect only under Unix. The permissions are also UNIX style, like the arguments for the chmod command.
Chown Changes the owner of a file or all files inside the specified directories. Currently, it has effect only under Unix.
Concat Concatenates multiple files into a single one or to Ant's logging system.
Copy Copies a file or Fileset to a new file or directory.
Copydir Deprecated. Use the Copy task instead.
Copyfile Deprecated. Use the Copy task instead.
Delete Deletes either a single file, all files and sub-directories in a specified directory, or a set of files specified by one or more FileSets.
Deltree Deprecated. Use the Delete task instead.
Filter Sets a token filter for this project, or reads multiple token filters from a specified file and sets these as filters. Token filters are used by all tasks that perform file-copying operations.
FixCRLF Modifies a file to add or remove tabs, carriage returns, linefeeds, and EOF characters.
Get Gets a file from a URL.
Mkdir Creates a directory. Non-existent parent directories are created, when necessary.
Move Moves a file to a new file or directory, or a set(s) of file(s) to a new directory.
Patch Applies a "diff" file to originals.
Rename Deprecated. Use the Move task instead.
RenameExtensions Deprecated. Use the Move task with a glob mapper instead.
Replace Replace is a directory-based task for replacing the occurrence of a given string with another string in selected file.
ReplaceRegExp Directory-based task for replacing the occurrence of a given regular expression with a substitution pattern in a file or set of files.
Sync Synchronize two directory trees.
Tempfile Generates a name for a new temporary file and sets the specified property to that name.
Touch Changes the modification time of a file and possibly creates it at the same time.
Java2 Extensions Tasks [Back to top]
Task Name Description Jarlib-available Check whether an extension is present in a FileSet or an ExtensionSet. If the extension is present, the specified property is set.
Jarlib-display Display the "Optional Package" and "Package Specification" information contained within the specified jars.
Jarlib-manifest Task to generate a manifest that declares all the dependencies in manifest. The dependencies are determined by looking in the specified path and searching for Extension/"Optional Package" specifications in the manifests of the jars.
Jarlib-resolve Try to locate a jar to satisfy an extension, and place the location of the jar into the specified property.
Logging Tasks [Back to top]
Task Name Description Record Runs a listener that records the logging output of the build-process events to a file. Several recorders can exist at the same time. Each recorder is associated with a file.
Mail Tasks [Back to top]
Task Name Description A task to send SMTP email.
MimeMail Deprecated. Use the Mail task instead.
Miscellaneous Tasks [Back to top]
Task Name Description Defaultexcludes Modify the list of default exclude patterns from within your build file.
Echo Echoes text to
System.out
or to a file.Fail Exits the current build by throwing a BuildException, optionally printing additional information.
GenKey Generates a key in keystore.
HostInfo Sets properties related to the provided host, or to the host the process is run on.
Input Allows user interaction during the build process by displaying a message and reading a line of input from the console.
Script Executes a script in a Apache BSF-supported language.
Sound Plays a sound file at the end of the build, according to whether the build failed or succeeded.
Splash Displays a splash screen.
Sql Executes a series of SQL statements via JDBC to a database. Statements can either be read in from a text file using the
src
attribute, or from between the enclosing SQL tags.Taskdef Adds a task definition to the current project, such that this new task can be used in the current project.
TStamp Sets the
DSTAMP
,TSTAMP
, andTODAY
properties in the current project, based on the current date and time.Typedef Adds a data-type definition to the current project, such that this new type can be used in the current project.
XmlValidate Checks that XML files are valid (or only well-formed). This task uses the XML parser that is currently used by Ant by default, but any SAX1/2 parser can be specified, if needed.
Pre-process Tasks [Back to top]
Task Name Description ANTLR Invokes the ANTLR Translator generator on a grammar file.
AntStructure Generates a DTD for Ant buildfiles that contains information about all tasks currently known to Ant.
Import Import another build file and potentially override targets in it with targets of your own.
Include Include another build file.
JavaCC Invokes the JavaCC compiler-compiler on a grammar file.
Javah Generates JNI headers from a Java class.
JJDoc Invokes the JJDoc documentation generator for the JavaCC compiler-compiler. JJDoc takes a JavaCC parser specification and produces documentation for the BNF grammar. It can operate in three modes, determined by command line options. This task only invokes JJDoc if the grammar file is newer than the generated BNF grammar documentation.
JJTree Invokes the JJTree preprocessor for the JavaCC compiler-compiler. It inserts parse-tree building actions at various places in the JavaCC source that it generates. The output of JJTree is run through JavaCC to create the parser. This task only invokes JJTree if the grammar file is newer than the generated JavaCC file.
Macrodef Define a new task as a macro built-up upon other tasks.
Native2Ascii Converts files from native encodings to ASCII with escaped Unicode. A common usage is to convert source files maintained in a native operating system encoding to ASCII, prior to compilation.
Presetdef Define a new task by instrumenting an existing task with default values for attributes or child elements.
Translate Identifies keys in files, delimited by special tokens, and translates them with values read from resource bundles.
XSLT Processes a set of documents via XSLT.
Property Tasks [Back to top]
Task Name Description Available Sets a property if a specified file, directory, class in the classpath, or JVM system resource is available at runtime.
Basename Sets a property to the last element of a specified path.
BuildNumber Task that can be used to track build numbers.
Condition Sets a property if a certain condition holds true; this is a generalization of Available and Uptodate.
Dirname Sets a property to the value of the specified file up to, but not including, the last path element.
Echoproperties
Lists the current properties.
LoadFile Loads a file into a property.
LoadProperties Load a file's contents as Ant properties. This task is equivalent to using
<property file="..."/>
except that it supports nested<filterchain>
elements, and it cannot be specified outside a target.MakeURL Creates a URL (list) from a file/fileset or path
PathConvert Converts a nested path, path reference, filelist reference, or fileset reference to the form usable on a specified platform and/or to a list of items separated by the specified separator and stores the result in the specified property.
Property Sets a property (by name and value), or set of properties (from a file or resource) in the project.
PropertyFile Creates or modifies property files. Useful when wanting to make unattended modifications to configuration files for application servers and applications. Typically used for things such as automatically generating a build number and saving it to a build properties file, or doing date manipulation.
Uptodate Sets a property if a given target file is newer than a set of source files.
Whichresource Find a class or resource.
XmlProperty Loads property values from a well-formed XML file.
Remote Tasks [Back to top]
Task Name Description FTP Implements a basic FTP client that can send, receive, list, and delete files, and create directories.
Rexec Task to automate a remote rexec session.
Scp Copy files to or from a remote server using SSH.
setproxy Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites.
Sshexec Execute a command on a remote server using SSH.
Telnet Task to automate a remote telnet session. This task uses nested
<read>
and<write>
tags to indicate strings to wait for and specify text to send.
SCM Tasks [Back to top]
Task Name Description Cvs Handles packages/modules retrieved from a CVS repository.
CvsChangeLog Generates an XML report of the changes recorded in a CVS repository.
CVSPass Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.
CvsTagDiff Generates an XML-formatted report file of the changes between two tags or dates recorded in a CVS repository.
ClearCase Tasks to perform the ClearCase cleartool checkin, checkout, uncheckout, update, lock, unlock, mklbtype, rmtype, mklabel, mkattr, mkdir, mkelem, and mkbl commands.
Continuus/Synergy Tasks to perform the Continuus ccmcheckin, ccmcheckout, ccmcheckintask, ccmreconfigure, and ccmcreateTask commands.
Microsoft Visual SourceSafe Tasks to perform the Visual SourceSafe vssget, vsslabel, vsshistory, vsscheckin, vsscheckout, vssadd, vsscp, and vsscreate commands.
Pvcs Allows the user extract the latest edition of the source code from a PVCS repository.
SourceOffSite Tasks to perform the SourceOffSite sosget, soslabel, soscheckin, and soscheckout commands.
Testing Tasks [Back to top]
Task Name Description Junit Runs tests from the Junit testing framework. This task has been tested with JUnit 3.0 up to JUnit 3.7; it won't work with versions prior to JUnit 3.0.
JunitReport Merges the individual XML files generated by the Junit task and applies a stylesheet on the resulting merged document to provide a browsable report of the testcases results.