blob: 332516eda4db42c1d000bb47cfd802405d5e7309 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Installing Ant</title>
</head>
<body>
<h1>Installing Ant</h1>
<h2><a name="getting">Getting Ant</a></h2>
<h3>Binary Edition</h3>
<p>The latest stable version of Ant can be downloaded from <a
href="http://jakarta.apache.org/builds/ant/release/v1.4.1/bin/">
http://jakarta.apache.org/builds/ant/release/v1.4.1/bin/</a>.
If you like living on the edge, you can download the latest version from <a
href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.apache.org/builds/ant/nightly/</a>.</p>
<h3>Source Edition</h3>
<p>If you prefer the source edition, you can download the source for the latest Ant release from <a
href="http://jakarta.apache.org/builds/ant/release/v1.4.1/src/">
http://jakarta.apache.org/builds/ant/release/v1.4.1/src/</a>.
Again, if you prefer the edge, you can access
the code as it is being developed via CVS. The Jakarta website has details on
<a href="http://jakarta.apache.org/site/cvsindex.html" target="_top">accessing CVS</a>. Please checkout the
jakarta-ant module.
See the section <a href="#buildingant">Building Ant</a> on how to
build Ant from the source code.
You can also access the
<a href="http://cvs.apache.org/viewcvs/jakarta-ant/" target="_top">
Ant CVS repository</a> on-line. </p>
<hr>
<h2><a name="sysrequirements">System Requirements</a></h2>
Ant has been used successfully on many platforms, including Linux,
commercial flavours of Unix such as Solaris and HP-UX,
Windows 9x and NT, Novell Netware 6 and MacOS X.
<p>
To build and use Ant, you must have a JAXP-compliant XML parser installed and
available on your classpath.</p>
<p>
The binary distribution of Ant includes the latest version of the
<a href="http://xml.apache.org/crimson/index.html">Apache Crimson</a> XML parser.
Please see
<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a>
for more information about JAXP.
If you wish to use a different JAXP-compliant parser, you should remove
<code>jaxp.jar</code> and <code>crimson.jar</code>
from Ant's <code>lib</code> directory.
You can then either put the jars from your preferred parser into Ant's
<code>lib</code> directory or put the jars on the system classpath.</p>
<p>
For the current version of Ant, you will also need a JDK installed on
your system, version 1.1 or later. Some tasks work better on post-1.1 systems;
some tasks only work on Java 1.2 and successors.
A future version of Ant -Ant 2.0- will require JDK 1.2 or later, though
Ant 1.x strives to retain 1.1 compatibility.
</p><p>
<strong>Note: </strong>The Microsoft JVM/JDK is not adequate on its own, although the MS
compiler is supported.
</p>
<p>
<strong>Note #2: </strong>If a JDK is not present, only the JRE runtime, then many tasks will not work.
</p>
<hr>
<h2><a name="installing">Installing Ant</a></h2>
<p>The binary distribution of Ant consists of three directories:
<code>bin</code>,
<code>docs</code> and
<code>lib</code>
Only the <code>bin</code> and <code>lib</code> directories are
required to run Ant.
To install Ant, choose a directory and copy the distribution
file there. This directory will be known as ANT_HOME.
</p>
<table width="80%">
<tr>
<td colspan="2">
<b>Windows 95 and Windows 98 Note:</b>
</td>
</tr>
<tr>
<td width="5%">&nbsp;</td>
<td><i>
On these systems, the script used to launch Ant will have
problems if ANT_HOME is a long filename. This is due to
limitations in the OS's handling of the <code>&quot;for&quot;</code>
batch-file statement. It is recommended, therefore, that Ant be
installed in a <b>short</b> path, such as C:\Ant.</i>
</td>
</tr>
</table>
<p>
Before you can run ant there is some additional set up you
will need to do:</p>
<ul>
<li>Add the <code>bin</code> directory to your path.</li>
<li>Set the <code>ANT_HOME</code> environment variable to the
directory where you installed Ant. On some operating systems the ant
wrapper scripts can guess <code>ANT_HOME</code> (Unix dialects and
Windows NT/2000) - but it is better to not rely on this behavior.</li>
<li>Optionally, set the <code>JAVA_HOME</code> environment variable
(see the <a href="#advanced">Advanced</a> section below).
This should be set to the directory where your JDK is installed.</li>
</ul>
<p><strong>Note:</strong> Do not install Ant's ant.jar file into the lib/ext
directory of the JDK/JRE. Ant is an application, whilst the extension
directory is intended for JDK extensions. In particular there are security
restrictions on the classes which may be loaded by an extension.</p>
<h3><a name="optionalTasks">Optional Tasks</a></h3>
<p>Ant supports a number of optional tasks. An optional task is a task which
typically requires an external library to function. The optional tasks are
packaged separately from the core Ant tasks. This package is available in
the same download directory as the core ant distribution. The current
jar containing optional tasks is named <code>jakarta-ant-1.4.1-optional.jar</code>.
This jar should be downloaded and placed in the lib directory of your Ant
installation.</p>
<p>The external libraries required by each of the optional tasks is detailed
in the <a href="#librarydependencies">Library Dependencies</a> section. These external
libraries may either be placed in Ant's lib directory, where they will be picked up
automatically, or made available on the system CLASSPATH environment variable.
</p>
<h3>Windows</h3>
<p>Assume Ant is installed in <code>c:\ant\</code>. The following sets up the
environment:</p>
<pre>set ANT_HOME=c:\ant
set JAVA_HOME=c:\jdk1.2.2
set PATH=%PATH%;%ANT_HOME%\bin</pre>
<h3>Unix (bash)</h3>
<p>Assume Ant is installed in <code>/usr/local/ant</code>. The following sets up
the environment:</p>
<pre>export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.2.2
export PATH=${PATH}:${ANT_HOME}/bin</pre>
<h3>Unix (csh)</h3>
<pre>setenv ANT_HOME /usr/local/ant
setenv JAVA_HOME /usr/local/jdk-1.2.2
set path=( $path $ANT_HOME/bin )</pre>
<h3><a name="advanced">Advanced</a></h3>
<p>There are lots of variants that can be used to run Ant. What you need is at
least the following:</p>
<ul>
<li>The classpath for Ant must contain <code>ant.jar</code> and any jars/classes
needed for your chosen JAXP-compliant XML parser.</li>
<li>When you need JDK functionality
(such as for the <a href="CoreTasks/javac.html">javac</a> task or the
<a href="CoreTasks/rmic.html">rmic</a> task), then for JDK 1.1, the <code>classes.zip</code>
file of the JDK must be added to the classpath; for JDK 1.2 or JDK 1.3, <code>tools.jar</code>
must be added. The scripts supplied with Ant,
in the <code>bin</code> directory, will add
the required JDK classes automatically, if the <code>JAVA_HOME</code>
environment variable is set.</li>
<li>When you are executing platform-specific applications, such as the
<a href="CoreTasks/exec.html">exec</a> task or the
<a href="CoreTasks/cvs.html">cvs</a> task, the property <code>ant.home</code>
must be set to the directory containing where you installed Ant. Again
this is set by the Ant scripts to the value of the ANT_HOME environment
variable.</li>
</ul>
The supplied ant shell scripts all support an <tt>ANT_OPTS</tt>
environment variable which can be used to supply extra options
to ant. Some of the scripts also read in an extra script stored
in the users home directory, which can be used to set such options. Look
at the source for your platform's invocation script for details.
<hr>
<h2><a name="buildingant">Building Ant</a></h2>
<p>To build Ant from source, you can either install the Ant source distribution
or checkout the jakarta-ant module from CVS.</p>
<p>Once you have installed the source, change into the installation
directory.</p>
<p>Set the <code>JAVA_HOME</code> environment variable
to the directory where the JDK is installed.
See <a href="#installing">Installing Ant</a>
for examples on how to do this for your operating system. </p>
<p>Make sure you have downloaded any auxiliary jars required to
build tasks you are interested in. These should either be available
on the CLASSPATH or added to the <code>lib/optional</code>
directory.
See <a href="#librarydependencies">Library Dependencies</a>
for a list of jar requirements for various features.
Note that this will make the auxiliary jars
available for the building of Ant only. For running Ant you will
still need to
make the jars available as described under
<a href="#installing">Installing Ant</a>.</p>
<p>Your are now ready to build Ant:</p>
<blockquote>
<p><code>build -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
<p><code>build.sh -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
</blockquote>
<p>This will create a binary distribution of Ant in the directory you specified.</p>
<p>The above action does the following:</p>
<ul>
<li>If necessary it will bootstrap the Ant code. Bootstrapping involves the manual
compilation of enough Ant code to be able to run Ant. The bootstrapped Ant is
used for the remainder of the build steps. </li>
<li>Invokes the bootstrapped Ant with the parameters passed to the build script. In
this case, these parameters define an Ant property value and specify the &quot;dist&quot; target
in Ant's own <code>build.xml</code> file.</li>
</ul>
<p>On most occasions you will not need to explicitly bootstrap Ant since the build
scripts do that for you. If however, the build file you are using makes use of features
not yet compiled into the bootstrapped Ant, you will need to manually bootstrap.
Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
to build a new bootstrap version of Ant.</p>
If you wish to install the build into the current <code>ANT_HOME</code>
directory, you can use:
<blockquote>
<p><code>build install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
<p><code>build.sh install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
</blockquote>
You can avoid the lengthy Javadoc step, if desired, with:
<blockquote>
<p><code>build install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
<p><code>build.sh install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
</blockquote>
This will only install the <code>bin</code> and <code>lib</code> directories.
<p>Both the <code>install</code> and
<code>install-lite</code> targets will overwrite
the current Ant version in <code>ANT_HOME</code>.</p>
<hr>
<h2><a name="librarydependencies">Library Dependencies</a></h2>
<p>The following libraries are needed in your CLASSPATH or in the
install directory's <code>lib</code> directory if you are using the
indicated feature. Note that only one of the regexp libraries is
needed for use with the mappers. You will also need to install the
Ant optional jar containing the task definitions to make these
tasks available. Please refer to the <a href="#optionalTasks">
Installing Ant / Optional Tasks</a> section above.</p>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td><b>Jar Name</b></td>
<td><b>Needed For</b></td>
<td><b>Available At</b></td>
</tr>
<tr>
<td>An XSL transformer like Xalan or XSL:P</td>
<td>style task</td>
<td><a href="http://xml.apache.org/xalan-j/index.html"
target="_top">http://xml.apache.org/xalan-j/index.html</a> for Xalan.<br>
XSL:P used to live at <a href="http://www.clc-marketing.com/xslp/"
target="_top">http://www.clc-marketing.com/xslp/</a>, but the link
doesn't work any longer and we are not aware of a replacement site.</td>
</tr>
<tr>
<td>jakarta-regexp-1.2.jar</td>
<td>regexp type with mappers</td>
<td><a href="http://jakarta.apache.org/regexp/" target="_top">jakarta.apache.org/regexp/</a></td>
</tr>
<tr>
<td>jakarta-oro-2.0.4.jar</td>
<td>regexp type with mappers and the perforce tasks</td>
<td><a href="http://jakarta.apache.org/oro/" target="_top">jakarta.apache.org/oro/</a></td>
</tr>
<tr>
<td>junit.jar</td>
<td>junit tasks</td>
<td><a href="http://www.junit.org/" target="_top">www.junit.org</a></td>
</tr>
<tr>
<td>stylebook.jar</td>
<td>stylebook task</td>
<td>CVS repository of <a href="http://xml.apache.org" target="_top">xml.apache.org</a></td>
</tr>
<tr>
<td>testlet.jar</td>
<td>test task</td>
<td><a href="http://java.apache.org/framework" target="_top">java.apache.org/framework</a></td>
</tr>
<tr>
<td>antlr.jar</td>
<td>antlr task</td>
<td><a href="http://www.antlr.org/" target="_top">www.antlr.org</a></td>
</tr>
<tr>
<td >bsf.jar</td>
<td>script task</td>
<td><a href="http://oss.software.ibm.com/developerworks/projects/bsf" target="_top">
oss.software.ibm.com/developerworks/projects/bsf</a></td>
</tr>
<tr>
<td>netrexx.jar</td>
<td>netrexx task</td>
<td><a href="http://www2.hursley.ibm.com/netrexx" target="_top">
www2.hursley.ibm.com/netrexx</a></td>
</tr>
<tr>
<td>rhino.jar</td>
<td>javascript with script task</td>
<td><a href="http://www.mozilla.org/rhino/" target="_top">www.mozilla.org/rhino</a></td>
</tr>
<tr>
<td>jpython.jar</td>
<td>python with script task</td>
<td><a href="http://www.jpython.org/" target="_top">www.jpython.org</a></td>
</tr>
<tr>
<td>jacl.jar and tcljava.jar</td>
<td>TCL with script task</td>
<td><a href="http://www.scriptics.com/java" target="_top">www.scriptics.com/java</a></td>
</tr>
<tr>
<td>netcomponents.jar</td>
<td>ftp and telnet tasks</td>
<td><a href="http://www.savarese.org/oro/downloads/index.html#NetComponents"
target="_top">www.savarese.org/oro/downloads</a></td>
</tr>
<tr>
<td>bcel.jar</td>
<td>classfileset data type<!-- and optional depend task -->.</td>
<td><a href="http://jakarta.apache.org/bcel/" target="_top">jakarta.apache.org/bcel/</a></td>
</tr>
<tr>
<td>mail.jar</td>
<td>Mail task with Mime encoding, and the MimeMail task</td>
<td><a href="http://java.sun.com/products/javamail/"
target="_top">http://java.sun.com/products/javamail/</a></td>
</tr>
<tr>
<td>activation.jar</td>
<td>Mail task with Mime encoding, and the MimeMail task</td>
<td><a href="http://java.sun.com/products/javabeans/glasgow/jaf.html"
target="_top">http://java.sun.com/products/javabeans/glasgow/jaf.html</a></td>
</tr>
<tr>
<td>jdepend.jar</td>
<td>jdepend task</td>
<td><a href="http://www.clarkware.com/software/JDepend.html"
target="_top">http://www.clarkware.com/software/JDepend.html</a></td>
</tr>
</table>
<br>
<hr>
<p align="center">Copyright &copy; 2001-2002 Apache Software Foundation. All rights
Reserved.</p>
</body>
</html>