mirror of
https://github.com/apache/ant.git
synced 2025-05-17 21:45:12 +00:00
portable) dash. Submitted by: Jesse Glick <Jesse.Glick@netbeans.com> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268781 13f79535-47bb-0310-9956-ffa450edef68
55 lines
2.2 KiB
HTML
55 lines
2.2 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<title>Ant User Manual</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1><a name="introduction">Introduction</a></h1>
|
|
<p>Ant is a Java-based build tool. In theory, it is kind of like
|
|
<i>make</i>, without <i>make</i>'s wrinkles.</p>
|
|
<h3>Why?</h3>
|
|
<p>Why another build tool when there is already
|
|
<i>make</i>,
|
|
<i>gnumake</i>,
|
|
<i>nmake</i>,
|
|
<i>jam</i>,
|
|
and
|
|
others? Because all 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,
|
|
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 have yet another format to use and remember.</p>
|
|
<p>Ant is different. Instead of a model where it is extended with shell-based
|
|
commands, Ant 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 that implements a particular
|
|
Task interface.</p>
|
|
<p>Granted, this removes some of the expressive power that is inherent in being
|
|
able to construct a shell command such as
|
|
<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, 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> task that
|
|
allows different commands to be executed based on the OS it is executing
|
|
on.</p>
|
|
|
|
<hr>
|
|
<p align="center">Copyright © 2000,2001 Apache Software Foundation. All rights
|
|
Reserved.</p>
|
|
|
|
</body>
|
|
</html>
|
|
|