| the Apache Ant site |

| Home |

| Projects |

# External Tools and Tasks

External Tools and Tasks

This page lists external resources for Apache Ant: tasks, Compiler Implementations, IDE integration tools, loggers, you name it. If you've written something that should be included, please post all relevant information to one of the mailing lists. For details, see the FAQ.

Nothing listed here is directly supported by the Ant developers, if you encounter any problems with them, please use the contact information.

Tasks

AJC

AspectJ is an aspect-oriented extension to Java. This task compiles a source tree using the AspectJ compiler -- AJC.

Compatibility: | Ant 1.3
URL: | http://www.eclipse.org/aspectj/
Contact: | project mailing lists
License: | Apache Software License

Anakia

Actually, Anakia is more than just an Ant task, it is a an XML transformation tool based on JDOM, Velocity and Ant.

Compatibility: | Ant 1.2 and later
URL: | http://jakarta.apache.org/velocity/anakia.html
Contact: | Velocity mailing lists
License: | Apache Software License

Anteater

Anteater is a set of Ant tasks for the functional testing of websites and web services (functional testing being; hit a URL and ensure the response meets certain criteria). Can test HTTP params, response codes, XPath, regexp and Relax NG expressions. Includes HTML reporting (based on junitreport) and a hierarchical grouping system for quickly configuring large test scripts.

Compatibility: | Ant 1.5 and later
URL: | http://aft.sourceforge.net/
Contact: | developer mailing list
License: | Apache Software License

Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. Its purpose is to automate the process of checking Java code, and to spare humans of this boring (but important) task.

Checkstyle can be run via an Ant task or a command line utility.

Compatibility: | Ant 1.4.1 and later
URL: | http://checkstyle.sourceforge.net/
Contact: | Oliver Burn
License: | Starting with release 2.0 the license is the GNU Lesser General Public License. Prior releases were under the GNU General Public License.

ChownTask

ChownTask is an Ant task to change ownership of files on Unix.

Compatibility: | Ant 1.3 and up
URL: | http://sourceforge.net/projects/chowntask/
Contact: | Wilfred Springer
License: | GNU General Public License

CleanImports

Removes unneeded imports. Formats your import sections. Flags ambiguous imports.

Compatibility: | Ant 1.3
URL: | http://www.euronet.nl/users/tomb/cleanImports/index.html
Contact: | Tom Brus
License: | Apache Software License

Clover

Clover is an Ant-based Code Coverage tool. It can be used seamlessly with Ant-based projects. It provides method, statement, and branch coverage analysis, and has rich reporting in XML, HTML or via a Swing GUI.

Compatibility: | Ant 1.4.1 or greater
URL: | http://www.thecortex.net/clover/
Contact: | clover-support@cortexebusiness.com.au
License: | Commercial, free licenses available for open source projects.

Configure

Recursive build support (call ant on every package level, and only build files in that package or in that package and everything below) with seperation of source and output.

The task generates build files in any subdirectory (except for CVS-directories) for you. Only place one build.xml file in the top and call target 'setup' or 'rescan'.

Compatibility: | Ant 1.2 and 1.3
URL: | http://www.dsdelft.nl/~lemval/ant/
Contact: | M.J.P. van Leeuwen
License: | License derived from Apache Software License

CVSGrab

A little CVS client that can be useful when people are behind corporate firewall that blocks any cvs communications. It uses the ViewCVS web interface to access the CVS repository via standard http, and downloads all the files present in it.

It works from the command line or as an Ant task.

Compatibility: | Ant 1.3 or higher
URL: | http://cvsgrab.sourceforge.net/
Contact: | CVSGrab user mailing list
License: | LGPL

Doxygen task

There are two Ant tasks for running the Doxygen documentation system.

Compatibility: | Ant 1.1 and later
URL: | http://www.bgw.org/projects/java/ant/
Contact: | Kyle R. Burton
License: | Apache Software Foundation License

and

Compatibility: | Ant 1.5 and later
URL: | http://ant-doxygen.sourceforge.net/
Contact: | Karthik A Kumar
License: | Apache Software Foundation License

GenJar

Builds a JAR file based on class dependencies rather than simply the contents of a directory

Compatibility: | Ant 1.4 alpha (built after 2001/08/04) and later
URL: | http://genjar.sourceforge.net/
Contact: | Jesse Stockall
License: | Apache Software Foundation License

Greebo

Greebo is an Ant-task for downloading dependency files (currently only jars) from a network to a specified directory, much like Maven. It supports multiple local and remote repositories with either flat or maven-like structures. It can read the dependency list from a Maven project file, a maven-like dependency file, or directly from the build.xml file.

Compatibility: | Ant 1.5
URL: | http://greebo.sourceforge.net/
Contact: | project mailing lists
License: | Apache Software License

Importscrubber

Removes unnecessary import statements from a Java source code file.

Compatibility: | Ant 1.3
URL: | http://importscrubber.sourceforge.net/
Contact: | Tom Copeland
License: | LGPL

Interactive

Task allowing to run a dialog within a build used to setup some properties. This way you can fill a property with the input of a user.

Compatibility: | Ant 1.5.1
URL: | http://www.kasisoft.de/build/ant/interactive/
Contact: | Daniel Kasmeroglu
License: | LGPL

IsDirValidator

Checks whether a given directory structure conforms to certain rules that are defined via nested elements of the task.

Compatibility: | Ant 1.4
URL: | http://isvalidator.sourceforge.net/en/isDirValidator.htm
Contact: | Iñigo Serrano
License: | GNU General Public License

J2ME Ant Tasks

There are four different sets of tasks to help build Java 2 Platform, Micro Edition (J2ME) applications.

This set supports CLDC and the K Virtual Machine (KVM):

Compatibility: | Ant 1.3
URL: | http://www.dribin.org/dave/j2me_ant/
Contact: | Dave Dribin
License: | Apache Software License

And this set works with the J2ME Wireless Toolkit and MIDP for PalmOS:

Compatibility: | Ant 1.3
URL: | http://www.stampysoft.com/ant/
Contact: | Josh Eckels
License: | MIT License

With Antenna, you can compile, preverify, package, and obfuscate your MIDP applications, as well as convert them to PRC files designed to run on MIDP for PalmOS. The tasks are mostly built around the Wireless Toolkit and the free RetroGuard obfuscator, with some additional gimmicks like automatic version numbering.

Compatibility: | Ant 1.4.1 or later
URL: | http://antenna.sourceforge.net/
Contact: | Jörg Pleumann
License: | GNU Lesser General Public License

Antic is a freely available task for packaging J2ME applications. It produces both the Jar and Jad files in a single step. This allows *all* entries to be correclty set in the jad file, including the size of the jar file that is produced. This task has been used and tested extensively with Sun's Wireless Toolkit and also the Nokia SDK and emulators.

Compatibility: | Ant 1.5
URL: | http://www.smartkey.co.uk/antic.html
Contact: | smartkey.co.uk
License: | GNU General Public License

Jacson

Jacson is a configurable and plugable tool (much like Ant itself) to create filters for text (line based) files without programming.

Compatibility: | Jacson has been used and tested with 1.5.1, should work with 1.4+
URL: | http://jacson.sourceforge.net/
Contact: | jacson-user@lists.sourceforge.de
License: | GNU Library or Lesser General Public License

Jalopy

An Ant Plug-in for the Java Source Code Formatter Jalopy.

Compatibility: | Ant 1.4 (or higher)
URL: | http://jalopy.sourceforge.net/
Contact: | http://jalopy.sf.net/contact.html
License: | Starting with release 1.0 Beta 6 the license is the BSD License. Prior releases were under the GNU General Public License.

Java+ Precompile Task

Java+ is an open source Java preprocessorthat adds these features to any Java compiler:

- Multi-line strings with executable inclusions like Perl and Ruby. It eliminates the need for JSP or ASP and their need for Java compilers on deployment servers (a security concern) while adding no overhead in either space or time.
- Optionally supports localization by segregating Java+ strings into ResourceBundle files with invarient keys based on the hash code of the strings's value. This is handled automatically and transparently; no intervention is required.
- Fast. Negligible impact on build times. By default, skips inputs whose outputs are up to date to avoid triggering recompilations.
- Pure Java code, portable to any platform, with graphical, shell and ant interfaces.
- Simple, general, recursive, digraph-driven string syntax. Digraph characters are user-selectable.

Compatibility: | Ant 1.5.1
URL: | http://virtualschool.edu/java+/
Contact: | Brad Cox
License: | BSD-like License

Java2Html

Uses the Java2Html library for converting java source files or snipplets to syntax highlighted html, rtf, tex and others.

Compatibility: | Ant 1.5 and later
URL: | http://www.java2html.de/
Contact: | java2html@jave.de
License: | GNU General Public License

Javamake

A task to compile Java sources and manage class file dependencies. Functionality is equivalent to that of standard Javac and Depend tasks combined, with improved dependency checking.

Compatibility: | Ant 1.4.1
URL: | http://www.experimentalstuff.com/Technologies/JavaMake/index.html
Contact: | Mikhail Dmitriev
License: | BSD-like License

javarec

Ant tasks that generate record classes for VisualAge for Java from Cobol copy books.

Compatibility: | Ant 1.4
URL: | http://glezen.org/javarec/
Contact: | Paul Glezen
License: | Apache Software License

JCSC

JCSC is a Java Coding Standard Checker which also features the generation of some code metrics. It is a command line tool with an Ant task to scan whole package trees. The result can viewed in an JavaDoc style web page.

Compatibility: | Ant >= 1.5
URL: | http://jcsc.sourceforge.net/
Contact: | Ralph Jocham
License: | GNU General Public License

JFlex

JFlex is a lexical analyzer generator (also known as scanner generator) for Java, written in Java.

Compatibility: | Ant 1.5
URL: | http://jflex.de/
Contact: | jflex-users mailing list
License: | GNU General Public License (GPL)

Jing Task

Validates XML files against the RELAX NG alternative to XML Schema. The Jing task for Ant allows you to efficiently validate multiple files against multiple RELAX NG patterns and integrate RELAX NG validation with other XML processing.

Compatibility: | Ant 1.4 and later
URL: | http://www.thaiopensource.com/relaxng/jing-ant.html
License: | BSD-like

jMetra

jMetra is a tool for collecting code metrics across a project lifecycle and compiling the results into JavaDoc-styled documentation to analyze project metrics over time. jMetra is best utilized by integrating it with your project's scheduled build process.

It works from the command line or using several provided Ant tasks.

Compatibility: | Ant 1.4 and higher
URL: | http://www.jmetra.com/
Contact: | R Todd Newton
License: | Commercial, free licenses for open source projects and evaluations.

JMX4Ant

JMX4Ant provides tasks for integration with JMX (Java Management Extensions). It provides tasks for getting and setting attributes of MBeans, invoking their methods and much more.

Compatibility: | Ant 1.4 and higher
URL: | http://jmx4ant.sourceforge.net/
Contact: | Brian Dueck
License: | Apache Software License 1.1

JNI

JNI is a free toolkit that makes easy work of integrating Java and C through the Java Native Interface (JNI). It includes a code generator that generates both Java "proxy" classes to access C "peer" classes, and C "proxy" classes to access Java "peer" classes or interfaces. It also includes a core library with a simplified JVM interface as well as "helper" classes to ease working with the JNI data types. The code generation is driven by an XML project file that can be created with the assistance of the GUI Project Manager. The code generation can be invoked either from Ant or from the GUI. Includes a comprehensive printable PDF User Guide and plenty of examples.

Compatibility: | Ant 1.4
URL: | http://jnipp.sf.net/
Contact: | Phillip E. Trewhella
License: | GNU LGPL

JRun Ant Tasks

JRun 4 SP1 ships with lib/jrun-ant-tasks.jar, which defines three Ant tasks: jrun, jrunapp, and jrunjmx. Documentation for the tasks can be found in JRun under docs/ant/jrun.html.

Note that the service pack must be installed on top of an existing JRun 4 installation.

Compatibility: | Ant 1.4 or higher
URL: | http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp
Contact: | Brian Deitte
License: | Commercial

Macker

A build-time architectural testing tool, designed to maintain clean layering / tiering / modularity. Macker works against compiled class files, checking dependencies between classes against a set of pattern-based access rules you specify for your project in an XML rules file. Macker doesn't presume anything about your architecture -- you write the rules, and Macker keeps you honest about them.

Compatibility: | Ant 1.5 and higher (1.4 untested but may work)
URL: | http://innig.net/macker/
Contact: | Paul Cantrell
License: | GNU GPL 2.0

pack

pack is a task to build the smallest possible JAR to link and run one or more classes.

Compatibility: | Ant 1.5
URL: | http://sadun-util.sourceforge.net/pack.html
Contact: | Cristiano Sadun
License: | GNU Lesser General Public License

PMD

PMD checks Java source code for unused variables, unnecessary object creation, etc

Compatibility: | Ant 1.4 and higher
URL: | http://pmd.sf.net/
Contact: | Tom Copeland
License: | Apache Software Foundation License

Purge

Purge deletes all but the most recent few files from a fileset. For example: if you have generated files (logs, .ear, .war, .jar etc) accumulating in a directory, the purge task will allow you to delete the older files, keeping just the most recent ones.

Compatibility: | Ant 1.4 or above
URL: | http://www.dallaway.com/ant/
Contact: | Richard Dallaway
License: | LGPL

SerialVer

SerialVer adds the Java serialver functionality to Apache Ant. This project adds Tasks and FilterReaders to get, to insert and to modify the serialVersionUID in the source code of a serializable class.

Compatibility: | Ant 1.5.1 and later
URL: | http://serialver.sourceforge.net/
Contact: | developer mailing list
License: | Apache Software License

SmartAnalyzer

Powerful analysis of dependencies between Java classes. Only affected classes will be recompiled and it can be used with any bytecode compiler.

Compatibility: | Apache Ant version 1.5.1
URL: | http://smartanalyzer.sourceforge.net/
Contact: | support at sourceforge project page
License: | GNU General Public Licence (GPL)

Styler

The styler task makes useful combinations of XSLT transformations easy to specify in an Ant build file. Like the built-in Ant task style, styler can apply a single transformation to a set of XML files. But it can also:

- handle multiple transformations, in parallel or pipelined.
- enable transformations that split or merge files
- process non-XML files, especially HTML (based on JTidy)
- apply non-XSLT transformation, especially "regular fragmentations"
- use any custom XMLReader or XMLFilter class to handle new file formats and transformation techniques.

Compatibility: | Ant 1.4
URL: | http://www.langdale.com.au/styler/
Contact: | Arnold deVos
License: | LGPL

Syntax

Transforms source files into HTML documents with syntax highlighting. It can handle a variety of source files including Java, HTML, C/C++, SQL, and Java properties. Colors for elements are specified using cascading style sheets. The output can be templated for easy integration with a site's look and feel.

Compatibility: | Ant 1.5
URL: | http://ostermiller.org/syntax/ant.html
Contact: | Stephen Ostermiller
License: | GNU General Public License (GPL)

Tidy Imports (Tim)

Tim is a handy utility that can be executed on the command line or via Ant that automatically formats your import declarations. Tim is capable of removing unused imports, expanding or collapsing imports and even organising them into pre-determined groups.

Compatibility: | Ant 1.3 and later
URL: | http://www.chive.com/tim.htm
Contact: | support@chive.com
License: | Commercial

TiniAnt

TiniAnt is an Ant task to support building applications for the TINI.

Compatibility: | Ant 1.2 to 1.4.1
URL: | http://tiniant.sourceforge.net/
Contact: | Sean Kelly
License: | BSD-like license

Venus Application Publisher's (Vamp) Ant Task Suite

Venus Application Publisher's (Vamp) Ant Task Suite allows you to sign and package your applications into relocatable Web Archives that you can drop into your web server for single-click launching using Java Web Start or into single Java Archive installers that serve up their content through a built-in, multi-threaded, ultra light-weight web server.

Compatibility: | Ant 1.2 and 1.3
URL: | http://www.geocities.com/vamp201/ant.html
Contact: | Gerald Bauer
License: | GNU General Public License

Version_Tool

A versioning tool for Ant.

Compatibility: | Ant 1.5.1
URL: | http://ant.ryangrier.com/
Contact: | version_tool@ryangrier.com
License: | BSD license

VPP

VPP provides general file preprocessing support based on the Velocity Template Engine. The core funtionality is provided as a filter for use with tasks that supports filter chains. Also included are replacement tasks for <copy> and <javac> that integrate support for preprocessing.

Compatibility: | 1.5.1 and above
URL: | http://vpp.sourceforge.net/
Contact: | vpp-user@lists.sourceforge.net
License: | BSD license

WOProject

WOProject provides a set of tools to work with WebObjects 5.1 independent from platform and IDE. It significantly improves developer productivity and makes complex project structures more flexible compared to traditional Makefile-based approach.

Compatibility: | Ant 1.4
URL: | http://objectstyle.org/woproject/
Contact: | Andrus Adamchik
License: | Apache license

XDoclet

XDoclet is an extended Javadoc Doclet engine for use in Ant. It lets you create custom Javadoc @tags and based on those tags generates source code or other files (such as xml-ish deployment descriptors). Templates and matching tasks are provided to generate EJB and web application deployment descriptors.

Compatibility: | Ant 1.4
URL: | http://sourceforge.net/projects/xdoclet/
License: | BSD license

XInclude

XInclude is a W3C standardized vocabulary for including arbitrary text or XML documents in other XML documents. This task perfomes the inclusion using an existing XInclude implementation

Compatibility: | Ant 1.5.2
URL: | http://www.jeckle.de/freeStuff/xia/index.html
Contact: | mario@jeckle.de
License: | Lesser GNU Public License

XmlTask

XmlTask provides a simple means to modify XML documents without having to learn XSLT. A simple path reference to an XML node specifies the node you want to change, and how you want to allow XML insertion and removal, or attribute changes. The emphasis is on providing the simplest means to perform common XML replacements

Compatibility: | Ant 1.4 and later
URL: | http://www.oopsconsultancy.com/software/xmltask.html
Contact: | xmltask@oopsconsultancy.com
License: | GNU General Public License

yGuard

yGuard is a free Java(TM) Bytecode Obfuscator Task that needs no external script or project files. It can completely be configured and run through the Ant build script. The task supports multiple Jar files at once and makes use of patternsets and regular expressions to specify elements, which should be left unobfuscated. Additionally it can be used to produce patches for obfuscated applications that have already been deployed.

Compatibility: | Ant 1.5 and later
URL: | http://www.yworks.com/en/products_yguard_about.htm
Contact: | yGuard@yWorks.com
License: | Library: LGPL, Task: Commercial

Compiler Implementations

Generics (JSR14) Early-Access Compiler Adapter

This is an Ant compiler-adapter that allows you to use the normal `<javac>` task plus Sun's early-access compiler to compile Generics-enabled Java code. (This is only necessary until JDK1.5 is released.)

Compatibility: | Ant 1.5 and later
URL: | http://www.madbean.com/blog/3/
Contact: | Matt Quail <spud[at]madbean[dot]com>
License: | Public Domain

miniRMI `<rmic>` implementation

miniRMI is a freeware opensource library that serves as a lightweight replacement for the original java.rmi packages and is suitable especially for applets. Ant 1.4+ `<rmic>` adapter included.

Compatibility: | Ant 1.4 and later
URL: | http://dione.zcu.cz/~toman40/miniRMI/
Contact: | Petr Toman
License: | Gnu Lesser Public License

IDE and Editor Integration

AntFarm

A plugin that integrates Ant into the jEdit editor.

Compatibility: | bundles Ant 1.5
URL: | http://plugins.jedit.org/plugins/?AntFarm
Contact: | jEdit developers mailinglist
License: | Apache Software License

AntMan

An AddIn that integrates Ant with the JDeveloper IDE

Compatibility: | Ant 1.4.1
URL: | http://www.erudra.com/antman/index.html
Contact: | Ashok Sridhar
License: | GNU General Public License

AntRunner

An OpenTool that integrates Ant into the JBuilder IDE.

Compatibility: | Ant 1.2 and 1.3
URL: | http://antrunner.sourceforge.net/
Contact: | Dieter Bogdoll
License: | GNU General Public License

AntWork

A plugin that integrates Ant into the Jext editor.

Compatibility: | Ant 1.2 and 1.3
URL: | ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip
Contact: | Klaus Hartlage
License: | GNU General Public License

Eclipse

Eclipse is a universal tool platform with Ant integration.

Compatibility: | Ant 1.3 - 1.4.1
URL: | http://www.eclipse.org/
Contact: | news://news.eclipse.org/eclipse.tools
License: | Common Public License Version 1.0

Gel

Java IDE with support for Ant. Gel is a native Microsoft Windows software.

Compatibility: | Ant 1.4 and above
URL: | http://www.gexperts.com/gel.html
Contact: | Project Mailing List
License: | Freeware

HP RadPak

RadPak comes with the (free) HP Bluestone HPAS J2EE server, and is primarily a GUI tool for packaging and deploying java web and EJB applications as WAR and EAR files. The tool is ant based, and can be used with as a GUI for general ant development, providing form based entry of task attributes, and an animated display of task execution.

Compatibility: | bundles Ant 1.3 and docs; adds a jar of extra tasks to any existing ant installation under ANT_HOME
URL: | http://www.bluestone.com/products/hp-as/
License: | Proprietary but free to download

IntelliJ IDEA 2.0

Java IDE with refactoring support and Ant integration.

Compatibility: | bundles Ant 1.3
URL: | http://www.intellij.com/idea/
Contact: | support@intellij.com
License: | Commercial

JBuilder 8 Enterprise

JBuilder 8 Enterprise and "Performance Bundle" come with built-in Ant support. JBuilder 8 Personal and SE don't support Ant directly, but an OpenTool is available for them.

Compatibility: | Bundles Ant 1.5.1
URL: | http://www.borland.com/jbuilder/index.html
Contact: | customer_service@borland.com
License: | Commercial

JDE(E) 2.2.8

The Java Development Environment for Emacs (JDEE) supports Apache Ant as one of three built-in ways to build your applications.

Compatibility: | Ant 1.2 and later
URL: | http://jde.sunsite.dk/
Contact: | JDEE Mailing list.
License: | GNU General Public License

NetBeans / Sun ONE Studio

A module that integrates Ant into the NetBeans or Sun ONE Studio (formerly Forte for Java) IDEs.

Compatibility: | bundles Ant 1.5.1
URL: | http://ant.netbeans.org/
Contact: | nbdev@netbeans.org
License: | Sun Public License

Oracle9i JDeveloper

Java IDE with support for Ant.

Compatibility: | Ant 1.5.1
URL: | http://otn.oracle.com/products/jdev/
Contact: | jdeveloperbeta_us@oracle.com
License: | Commercial

WebSphere Studio Application Developer

WSAD features Ant integrate by virtue of being built on the Eclipse tools platform.

Compatibility: | bundles Ant 1.4.1
Article: | Ant Integration Part1
License: | Commercial

Copyright © 2000-2003 The Apache Software Foundation. All rights reserved.