|
- <?xml version="1.0"?>
- <document>
-
- <properties>
- <author email="conor@cortexebusiness.com.au">Conor MacNeill</author>
- <title>Ant</title>
- </properties>
-
- <body>
-
- <section name="Ant">
-
- <p>
- Ant is a Java based build tool. In theory it is kind of like make without
- make's wrinkles.
- </p>
-
- <p>
- Why another build tool when there is already make, gnumake, nmake, jam, and
- others? Because all of those tools have limitations that Ant's original author
- couldn't live with when developing software across multiple platforms. Make-like
- tools are inherently shell based. They evaluate a set of dependencies and then
- execute commands not unlike what you would issue on a shell. This means that you
- can easily extend these tools by using or writing any program for the OS that
- you are working on. However, this also means that you limit yourself to the OS,
- or at least the OS type such as Unix, that you are working on.
- </p>
-
- <p>
- Makefiles are inherently evil as well. Anybody who has worked on them for any
- time has run into the dreaded tab problem. "Is my command not executing
- because I have a space in front of my tab!!!" said the original author of
- Ant way too many times. Tools like Jam took care of this to a great degree, but
- still use yet another format to use and remember.
- </p>
-
- <p>
- Ant is different. Instead of a model where it is extended with shell based
- commands, it is extended using Java classes. Instead of writing shell commands,
- the configuration files are XML based calling out a target tree where various
- tasks get executed. Each task is run by an object which implements a particular
- Task interface.
- </p>
-
- <p>
- Granted, this removes some of the expressive power that is inherent by being
- able to construct a shell command such as `find . -name foo -exec rm {}` but it
- gives you the ability to be cross platform. To work anywhere and everywhere. And
- hey, if you really need to execute a shell command, Ant has an exec rule that
- allows different commands to be executed based on the OS that it is executing
- on.
- </p>
-
- </section>
-
- <section name="Documentation">
-
- <p>
- You can view the documentation for the most recent release
- <a href="manual/index.html">online</a>
- </p>
-
- <p>
- Comprehensive documentation is included in the source and binary distribtions.
- </p>
-
- </section>
-
- <section name="Latest Release">
- <p>
- You can download the latest release:
- </p>
- <ul>
- <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin/">
- Download the binary release</a></li>
- <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/src/">
- Download the source release</a></li>
- <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/rpms/">
- Download source and binary RPMs</a></li>
- </ul>
- </section>
-
- <section name="Nightly Builds">
- <p>
- If you wish to use the latest Ant features, you can try downloading a nightly
- build from <a href="http://jakarta.apache.org/builds/jakarta-ant/nightly/">here</a>
- </p>
-
- </section>
-
- <section name="Towards Ant2">
- <p>
- We are currently collecting feature requests for Ant2. Please
- read the latest <a href="/ant/antnews.html">Ant news</a> for more details.
- </p>
- </section>
-
- <section name="Get Involved">
- <ul>
- <li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
- <li><a href="http://jakarta.apache.org/getinvolved/mail.html">Join Mailing Lists</a></li>
- <li><a href="http://marc.theaimsgroup.com/?l=ant-dev&r=1&w=2">Search the Dev Mailing List</a>
- </li>
- <li><a href="http://marc.theaimsgroup.com/?l=ant-user&r=1&w=2">Search the User Mailing List</a>
- </li>
- <li><a href="/jyve-faq/Turbine/screen/DisplayTopics/action/SetAll/project_id/2/faq_id/16">FAQ</a>
- </li>
- </ul>
-
-
-
- </section>
-
- </body>
- </document>
|