source: other-projects/trunk/realistic-books/packages/AntInstaller/web/manual1.6.2/manual/intro.html@ 19253

Last change on this file since 19253 was 19253, checked in by davidb, 15 years ago

Establishing a source code repository for Veronica's Realistic Book's software

File size: 2.3 KB
Line 
1<html>
2
3<head>
4<meta http-equiv="Content-Language" content="en-us">
5<title>Apache Ant User Manual - Introduction</title>
6<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
7</head>
8
9<body>
10<h1><a name="introduction">Introduction</a></h1>
11<p>Apache Ant is a Java-based build tool. In theory, it is kind of like
12<i>make</i>, without <i>make</i>'s wrinkles.</p>
13<h3>Why?</h3>
14<p>Why another build tool when there is already
15<i>make</i>,
16<i>gnumake</i>,
17<i>nmake</i>,
18<i>jam</i>,
19and
20others? Because all those tools have limitations that Ant's original author
21couldn't live with when developing software across multiple platforms.
22Make-like
23tools are inherently shell-based: they evaluate a set of dependencies,
24then execute commands not unlike what you would issue on a shell.
25This means that you
26can easily extend these tools by using or writing any program for the OS that
27you are working on; however, this also means that you limit yourself to the OS,
28or at least the OS type, such as Unix, that you are working on.</p>
29<p>Makefiles are inherently evil as well. Anybody who has worked on them for any
30time has run into the dreaded tab problem. &quot;Is my command not executing
31because I have a space in front of my tab?!!&quot; said the original author of
32Ant way too many times. Tools like Jam took care of this to a great degree, but
33still have yet another format to use and remember.</p>
34<p>Ant is different. Instead of a model where it is extended with shell-based
35commands, Ant is extended using Java classes. Instead of writing shell commands,
36the configuration files are XML-based, calling out a target tree where various
37tasks get executed. Each task is run by an object that implements a particular
38Task interface.</p>
39<p>Granted, this removes some of the expressive power that is inherent in being
40able to construct a shell command such as
41<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, but it
42gives you the ability to be cross-platform - to work anywhere and
43everywhere. And
44hey, if you really need to execute a shell command, Ant has an
45&lt;exec&gt; task that
46allows different commands to be executed based on the OS it is executing
47on.</p>
48
49<hr>
50<p align="center">Copyright &copy; 2000-2002,2004 The Apache Software Foundation. All rights
51Reserved.</p>
52
53</body>
54</html>
55
Note: See TracBrowser for help on using the repository browser.