<?xml version="1.0"?>
<document>

  <properties>
    <author email="bodewig@apache.org">Stefan Bodewig</author>
    <title>Resources</title>
  </properties>

  <body>

    <section name="FAQs">
      <subsection name="At Ant's website">
        <table>
          <tr>
            <th>FAQ</th>
            <td><a href="faq.html">http://jakarta.apache.org/ant/faq.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="jGuru">
        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>

        <table>
          <tr>
            <th>Forum</th>
            <td><a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a></td>
          </tr>
          <tr>
            <th>FAQ</th>
            <td><a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a></td>
          </tr>
        </table>
      </subsection>
    </section>
    
    <section name="Articles and Presentations">

      <p>The following sections list articles and presentations written about Ant.  If
      you've written something that should be included, please post it to one
      of the mailing lists.</p>

    </section>

    <section name="Articles">

      <subsection name="Ant in Anger: Using Ant in a Production Development
      System">
        <p>This document describes strategies and some basic examples of how to 
        use Ant in larger team development projects.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="ant_in_anger.html">http://jakarta.apache.org/ant/ant_in_anger.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Ant Task Guidelines">
        <p>This document describes how to write custom Ant tasks, and how to submit
        them to potentially be included in Ant.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="ant_task_guidelines.html">http://jakarta.apache.org/ant/ant_task_guidelines.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Automating the build and test process">
        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:erik@hatcher.net">Erik Hatcher</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Incremental development with Ant and JUnit">
        <p>This article explores the benefits of unit testing with Ant and
        JUnit, detailing how to develop automated unit tests and integrate them
        into your build process.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:malcolm@nuearth.com">Malcolm Davis</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Automate your build process using Java and Ant">
        <p>This article provides an introduction to using Ant with some basic
        examples and by highlighting some of the important tasks.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Short tutorial in Cactus&apos; (formerly J2EEUnit)
      documentation">
        <p>There is a short tutorial on how to use Ant in Cactus&apos;
        documentation.  It has a slant towards build files that will be used
        with Cactus.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Cactus development team</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jakarta.apache.org/commons/cactus/ant.html">http://jakarta.apache.org/commons/cactus/ant.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Developing custom Ant tasks with VisualAge for Java">
        <p>This article outlines how to integrate Ant into VisualAge for Java,
        and how to write and debug custom tasks using the IDE and the
        integrated debugger.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:glenn@somanetworks.com">Glenn McAllister</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Automated builds with VisualAge for Java and Ant">
        <p>This article shows how you can perform command line builds with a
        VisualAge for Java repository.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:glenn@somanetworks.com">Glenn McAllister</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Ant: A Build Tool from the Jakarta Project">
        <p>This article is from the &quot;Best Practices&quot; section of
        Sun&apos;s Dot-Com Builder Site.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Laura Geele Wang</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Making a Mountain Out of an Anthill">
        <p>This article is from the June 2001 issue of the Java Developer&apos;
        Journal.  You need to be a registered JDJ subscriber to view this
        article.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Neal Ford</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Using Ant and Weblogic EJBs">
        <p>This article describes how to use Ant to create Weblogic EJBs, and
        some workarounds for issues you may encounter.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Jesse E. Tilly</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="An Introduction to Ant">
        <p>This article is a short introduction into the basic
        concepts of Ant.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Jayakrishnan Nair</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://varnam.org/articles/ant.html">http://varnam.org/articles/ant.html</a></td>
          </tr>
        </table>
      </subsection>

    </section>

    <section name="Presentations">

      <subsection name="Ant - presented to the Tucson Java Users Group">
        <p>A PowerPoint technical overview presentation on Ant.  Comes complete with a straightforward example demonstrating code compilation, JAR'ing, JUnit testing, JUnit reporting, and Zipping a distribution.  A few advanced topics are touched upon like property immutabality and using &lt;antcall&gt; to get around it, build listeners, and writing custom tasks.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:erik@hatcher.net">Erik Hatcher</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://erik.hatcher.net/ant-jug.zip">http://erik.hatcher.net/ant-jug.zip</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Ant Build Tool">
        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
        of Ant&apos;s capabilities.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:chanezon@netscape.com">Patrick Chanezon</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Ant">
        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
        meeting in March 2001.  Includes a detailed build file and basic
        descriptions of all the built in and optional tasks.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td>Mark Volkmann</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.ociweb.com/javasig/knowledgebase/March2001/index.html">http://www.ociweb.com/javasig/knowledgebase/March2001/index.html</a></td>
          </tr>
        </table>
      </subsection>

      <subsection name="Modern Development Crises">
        <p>This presentation is an overview of the current state of software
        development today.  There are a couple of slides that briefly cover
        Ant.</p>

        <table>
          <tr>
            <th>Author:</th>
            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a></td>
          </tr>
        </table>
      </subsection>
    </section>
  </body>
</document>
