blob: 6c11b67f1e709c30e5ce6675b8375d35c85375cb [file] [log] [blame]
<?xml version="1.0"?>
<document>
<properties>
<author email="bodewig@apache.org">Stefan Bodewig</author>
<title>External Tools and Tasks</title>
</properties>
<body>
<section name="External Tools and Tasks">
<p>This page lists external resources for Apache Ant: tasks, 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.</p>
<p>Nothing listed here is directly supported by the Ant
developers, if you encounter any problems with them, please use
the contact information.</p>
</section>
<section name="Tasks">
<subsection name="AJC">
<p><a href="http://aspectj.org">AspectJ</a> is an
aspect-oriented extension to Java. This task compiles a
source tree using the AspectJ compiler -- AJC.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://aspectj.org/dl">http://aspectj.org/dl</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:support@aspectj.org">support@aspectj.org</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="Anakia">
<p>Actually, Anakia is more than just an Ant task, it is a an
XML transformation tool based on JDOM, Velocity and Ant.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="Checkstyle">
<p>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.</p>
<p>Checkstyle can be run via an Ant task or a command line
utility.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 to 1.4.1</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a></td>
</tr>
<tr>
<th>License:</th>
<td>Starting with release 2.0 the license is the GNU
Lesser General Public License. Prior releases were under
the GNU General Public License.</td>
</tr>
</table>
</subsection>
<subsection name="CleanImports">
<p>Removes unneeded imports. Formats your import
sections. Flags ambiguous imports.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.euronet.nl/users/tomb/cleanImports/index.html">http://www.euronet.nl/users/tomb/cleanImports/index.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:tomb@euronet.nl">Tom Brus</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="Configure">
<p>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.</p>
<p>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 &apos;setup&apos; or
&apos;rescan&apos;.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a></td>
</tr>
<tr>
<th>License:</th>
<td>License derived from Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="Doxygen task">
<p>Ant task for running the Doxygen documentation system.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.1 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:mortis@voicenet.com">Kyle R. Burton</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software Foundation License</td>
</tr>
</table>
</subsection>
<subsection name="GenJar">
<p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4 alpha (built after 2001/08/04) and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.riggshill.com/projects/genjar/">http://www.riggshill.com/projects/genjar/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:jake@riggshill.com">John Kohler</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software Foundation License</td>
</tr>
</table>
</subsection>
<subsection name="Importscrubber">
<p>Removes unnecessary import statements from a Java source code file.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a></td>
</tr>
<tr>
<th>License:</th>
<td>LGPL</td>
</tr>
</table>
</subsection>
<subsection name="IsDirValidator">
<p>Checks whether a given directory structure conforms to
certain rules that are defined via nested elements of the
task.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://isvalidator.sourceforge.net/en/isDirValidator.htm">http://isvalidator.sourceforge.net/en/isDirValidator.htm</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:news@inigoserrano.com">I&#xF1;igo Serrano</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="Jalopy">
<p>An Ant Plug-in for the Java Source Code Formatter
Jalopy.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://jalopy.sourceforge.net">http://jalopy.sourceforge.net</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:jalopy@hunsicker.de">jalopy@hunsicker.de</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="Javamake">
<p>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.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4.1</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a></td>
</tr>
<tr>
<th>License:</th>
<td>BSD-like License</td>
</tr>
</table>
</subsection>
<subsection name="J2ME Ant Tasks">
<p>There are two different sets of tasks to help build <a
href="http://java.sun.com/j2me/">Java 2 Platform, Micro
Edition</a> (J2ME) applications.</p>
<p>This set supports CLDC and the K Virtual Machine (KVM):</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:drib@enteract.com">Dave Dribin</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
<p>And this set works with the J2ME Wireless Toolkit and MIDP
for PalmOS:</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:jeckels@stampysoft.com">Josh Eckels</a></td>
</tr>
<tr>
<th>License:</th>
<td>MIT License</td>
</tr>
</table>
</subsection>
<subsection name="javarec">
<p>Ant tasks that generate record classes for VisualAge for
Java from Cobol copy books.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:pglezen@us.ibm.com">Paul Glezen</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="Styler">
<p>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:</p>
<ul>
<li>handle multiple transformations, in parallel or pipelined.</li>
<li>enable transformations that split or merge files</li>
<li>process non-XML files, especially HTML (based on JTidy)</li>
<li>apply non-XSLT transformation, especially "regular
fragmentations"</li>
<li>use any custom XMLReader or XMLFilter class to handle new file
formats and transformation techniques.</li>
</ul>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:adv@langdale.com.au">Arnold deVos</a></td>
</tr>
<tr>
<th>License:</th>
<td>LGPL</td>
</tr>
</table>
</subsection>
<subsection name="Tidy Imports (Tim)">
<p>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.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.3 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.chive.com/tim.htm">http://www.chive.com/tim.htm</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:support@chive.com">support@chive.com</a></td>
</tr>
<tr>
<th>License:</th>
<td>Commercial</td>
</tr>
</table>
</subsection>
<subsection name="TiniAnt">
<p>TiniAnt is an Ant task to support building applications for
the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 to 1.4.1</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:kelly@ad1440.net">Sean Kelly</a></td>
</tr>
<tr>
<th>License:</th>
<td>BSD-like license</td>
</tr>
</table>
</subsection>
<subsection name="Venus Application Publisher's (Vamp) Ant Task Suite">
<p>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.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:vamp201@yahoo.com">Gerald Bauer</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="WOProject">
<p>WOProject provides a set of tools to work with
<a href="http://webobjects.com/">WebObjects 5.1</a>
independent from platform and IDE. It significantly
improves developer productivity
and makes complex project structures more flexible compared to
traditional Makefile-based approach.
</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://objectstyle.org/woproject/">http://objectstyle.org/woproject/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:andrus@objectstyle.org">Andrus Adamchik</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache license</td>
</tr>
</table>
</subsection>
<subsection name="XDoclet">
<p>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.
</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a></td>
</tr>
<tr>
<th>License:</th>
<td>BSD license</td>
</tr>
</table>
</subsection>
<subsection name="XmlTask">
<p>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</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.oopsconsultancy.com/software/xmltask.html">http://www.oopsconsultancy.com/software/xmltask.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:xmltask@oopsconsultancy.com">xmltask@oopsconsultancy.com</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
</section>
<section name="Compiler Implementations">
<subsection name="miniRMI &lt;code&gt;&amp;lt;rmic&amp;gt;&lt;/code&gt; implementation">
<p>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+
<code>&lt;rmic&gt;</code> adapter included.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://dione.zcu.cz/~toman40/miniRMI/">http://dione.zcu.cz/~toman40/miniRMI/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:Petr.Toman@pinknet.cz">Petr Toman</a></td>
</tr>
<tr>
<th>License:</th>
<td>Gnu Lesser Public License</td>
</tr>
</table>
</subsection>
</section>
<section name="IDE and Editor Integration">
<subsection name="AntFarm">
<p>A plugin that integrates Ant into the jEdit editor.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>bundles Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://plugins.jedit.org/plugins/AntFarm">http://plugins.jedit.org/plugins/AntFarm</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a></td>
</tr>
<tr>
<th>License:</th>
<td>Apache Software License</td>
</tr>
</table>
</subsection>
<subsection name="AntMan">
<p>An AddIn that integrates Ant with the JDeveloper IDE</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.4.1</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.erudra.com/antman/index.html">http://www.erudra.com/antman/index.html</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:ashok@erudra.com">Ashok Sridhar</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="AntRunner">
<p>An OpenTool that integrates Ant into the JBuilder IDE.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.dieter-bogdoll.de/java/AntRunner/">http://www.dieter-bogdoll.de/java/AntRunner/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:bogdoll@users.sourceforge.net">Dieter Bogdoll</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="AntWork">
<p>A plugin that integrates Ant into the Jext editor.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="IntelliJ IDEA 2.0">
<p>Java IDE with refactoring support and Ant integration.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>bundles Ant 1.3</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:support@intellij.com">support@intellij.com</a></td>
</tr>
<tr>
<th>License:</th>
<td>Commercial</td>
</tr>
</table>
</subsection>
<subsection name="JDE(E) 2.2.8">
<p>The Java Development Environment for Emacs (JDEE) supports
Apache Ant as one of three built-in ways to build your
applications.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>Ant 1.2 and later</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://jde.sunsite.dk/">http://jde.sunsite.dk/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a></td>
</tr>
<tr>
<th>License:</th>
<td>GNU General Public License</td>
</tr>
</table>
</subsection>
<subsection name="NetBeans / Forte for Java">
<p>A module that integrates Ant into the NetBeans or Forte for Java IDEs.</p>
<table>
<tr>
<th>Compatibility:</th>
<td>bundles Ant 1.4.1</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a></td>
</tr>
<tr>
<th>Contact:</th>
<td><a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a></td>
</tr>
<tr>
<th>License:</th>
<td>Sun Public License</td>
</tr>
</table>
</subsection>
<subsection name="HP RadPak">
<p>
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.
</p>
<table>
<tr>
<th>Compatibility:</th>
<td>bundles Ant 1.3 and docs; adds a jar of extra tasks
to any existing ant installation under ANT_HOME</td>
</tr>
<tr>
<th>URL:</th>
<td><a href="http://www.bluestone.com/products/hp-as/">http://www.bluestone.com/products/hp-as/</a></td>
</tr>
<tr>
<th>License:</th>
<td>Proprietary but free to download</td>
</tr>
</table>
</subsection>
</section>
</body>
</document>