aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/manual/install.html
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/manual/install.html')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/manual/install.html1096
1 files changed, 1096 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/manual/install.html b/framework/src/ant/apache-ant-1.9.6/manual/install.html
new file mode 100644
index 00000000..818b168d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/manual/install.html
@@ -0,0 +1,1096 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="stylesheets/style.css">
+<title>Installing Apache Ant</title>
+</head>
+
+<body>
+<h1>Installing Apache Ant</h1>
+<h2><a name="getting">Getting Apache Ant</a></h2>
+
+<h3>The Short Story</h3>
+<p>To get up and running with the binary edition of Ant quickly, follow these steps:
+<ol>
+<li>Make sure you have a Java environment installed, See <a href="#sysrequirements">System
+Requirements</a> for details.</li>
+<li>Download Ant. See <a href="#getBinary">Binary Edition</a> for details.</li>
+<li>Uncompress the downloaded file into a directory.</li>
+<li>Set environmental variables <code>JAVA_HOME</code> to your Java environment, <code>ANT_HOME</code> to
+the directory you uncompressed Ant to, and add <code>${ANT_HOME}/bin</code> (Unix) or
+<code>%ANT_HOME%/bin</code> (Windows) to your <code>PATH</code>. See <a href="#setup">Setup</a> for details.</li>
+<li>Optionally, from the <code>ANT_HOME</code> directory run <code>ant -f fetch.xml -Ddest=system</code> to get
+the library dependencies of most of the Ant tasks that require them. If you don't do this, many of the dependent
+Ant tasks will not be available. See <a href="#optionalTasks">Optional Tasks</a> for details and other options
+for the -Ddest parameter.</li>
+<li>Optionally, add any desired Antlibs. See <a href="http://ant.apache.org/antlibs/proper.html" target="_top">Ant Libraries</a> for a list.
+</ol>
+</p>
+<p>
+Note that the links in the list above will give more details about each of the steps,
+should you need them. Or you can just continue reading the rest of this document.
+</p>
+The short story for working with the Ant source code (not needed if you are working with the binary edition) is:
+<ol>
+<li>Get the source code. See <a href="#sourceEdition">Source Edition</a> for details.</li>
+<li> Build Ant. See <a href="#buildingant">Building Ant</a> for details.</li>
+</ol>
+<p>
+</p>
+<p>
+For the full story, continue reading.
+</p>
+
+<h3><a name="getBinary">Binary Edition</a></h3>
+
+<p>The latest stable version of Ant is available from the Ant web page <a
+href="http://ant.apache.org/" target="_top">http://ant.apache.org/</a>
+</p>
+
+<p>The binary edition of Ant is shipped with 3 different compression formats:
+<ol>
+<li><b>.zip</b> - Recommended compression format for Windows, can also be used on other platforms. Supported
+by many programs and some operating systems natively.</li>
+<li><b>.tar.gz</b> - Uses the tar program to gather files together, and gzip to compress and uncompress.</li>
+<li><b>.tar.bz2</b> - Uses the tar program to gather files together, and bzip2 to compress and uncompress..</li>
+</ol>
+Choose the format that is best supported for your platform.
+</p>
+
+<h3>As a binary in an RPM Package</h3>
+
+<p>Consult the <a href="#jpackage">jpackage</a> section below.</p>
+
+<h3>Bundled in IDEs</h3>
+<p>
+ All the main Java IDEs ship with Ant, products such as Eclipse, NetBeans
+ and IntelliJ IDEA. If you install Ant this way you usually get the most recent
+ release of Ant at the time the IDE was released. Some of the IDEs (Eclipse
+ and NetBeans in particular) ship with extra tasks that only work if
+ IDE-specific tools are on Ant's path. To use these on command-line versions
+ of Ant, the relevant JARs need to be added to the command-line Ant as
+ extra libraries/tasks. Note that if it is an IDE task or extension that is
+ not behaving, the Ant team is unable to field bug reports. Try the IDE mailing
+ lists first, who will cross-file bugs if appropriate.
+</p>
+<p>
+ IDE's can invariably be pointed at different Ant installations. This lets
+ developers upgrade to a new release of Ant, and eliminate inconsistencies
+ between command-line and IDE Ant.
+</p>
+
+<h3>Bundled in Java applications</h3>
+
+<p>
+ Many Java applications, most particularly application servers, ship with
+ a version of Ant. These are primarily for internal use by the application,
+ using the Java APIs to delegate tasks such as JSP page compilation to the Ant
+ runtime. Such distributions are usually unsupported by everyone. Particularly
+ troublesome are those products that not only ship with their own Ant release,
+ they add their own version of ANT.BAT or ant.sh to the PATH. If Ant starts
+ behaving weirdly after installing something, try the
+ <a href="#diagnostics">diagnostics</a> advice.
+</p>
+
+<h3><a name="sourceEdition">Source Edition</a></h3>
+
+<p>If you prefer the source edition, you can download the source for the latest
+Ant release from
+<a href="http://ant.apache.org/srcdownload.cgi" target="_top">http://ant.apache.org/srcdownload.cgi</a>.
+
+If you prefer the leading-edge code, you can access
+the code as it is being developed via git. The Ant website has details on
+<a href="http://ant.apache.org/git.html" target="_top">accessing git</a>.
+All bug fixes will go in against the HEAD of the source tree, and the first
+response to many bugreps will be "have you tried the latest version".
+Don't be afraid to download and build a prererelease edition, as everything
+other than new features are usually stable.
+ </p>
+<p>
+
+
+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="https://git-wip-us.apache.org/repos/asf?p=ant.git;a=summary" target="_top">
+Ant SVN repository</a> on-line. </p>
+
+<h3 name="archives">Archive Download Area Layout</h3>
+<p>
+Older versions of Ant are available in the archives at <a
+href="http://archive.apache.org/dist/ant/" target="_top">http://archive.apache.org/dist/ant/</a>. The
+files are organized as follows.
+</p>
+<table>
+<tr>
+ <th>Filename or Path</th>
+ <th>Description</th>
+</tr>
+<tr>
+ <td>KEYS</td>
+ <td>PGP-Keysfile. It contains the PGP-keys of Ant developers so you can 'trust' the distribution. </td>
+</tr>
+<tr>
+ <td>RELEASE-NOTES-{version}.html</td>
+ <td>
+ Release notes of the given version in HTML format. When upgrading your Ant installation you
+ should have a look at the <i>Changes that could break older environments</i> section.
+ </td>
+</tr>
+<tr>
+ <td>ant-current-bin.zip</td>
+ <td>
+ ZIP-Archive containing the compiled version of Ant in the last released version. It is recommended that
+ you do not download the latest version this way, as the standard way of downloading described above will
+ redirect you to a mirror closer to you, thus making the download faster for you and reducing the load
+ on Apache servers.
+ </td>
+</tr>
+<tr>
+ <td>ant-current-src.zip</td>
+ <td>
+ ZIP-Archive containing the sources of Ant. If you have this you could compile Ant itself.
+ If you do not have the <i>required</i> dependencies, the classes depending on them are just not
+ built. Again, it is preferred to use the standard way of getting the source package described above
+ to make your download quicker and to reduce the load on Apache servers.
+ </td>
+</tr>
+<tr>
+ <td>ant-current-*.asc</td>
+ <td>
+ Security file for checking the correctness of the zip file. This one is the
+ <a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">PGP</a> key.
+ </td>
+</tr>
+<tr>
+ <td>ant-current-*.md5</td>
+ <td>
+ Security file for checking the correctness of the zip file. This one is the
+ <a href="http://en.wikipedia.org/wiki/Md5" target="_blank">MD5</a> key.
+ </td>
+</tr>
+<tr>
+ <td>ant-current-*.sha1</td>
+ <td>
+ Security file for checking the correctness of the zip file. This one is the
+ <a href="http://en.wikipedia.org/wiki/SHA-1" target="_blank">SHA1</a> key.
+ </td>
+</tr>
+<tr>
+ <td>antlibs/</td>
+ <td>
+ This directory holds the Antlibs that are made of available by the Apache Ant project.
+ Antlibs are bundles of Ant tasks that are not delivered as part of the Ant core but are
+ available as optional downloads.
+ </td>
+</tr>
+<tr>
+ <td>binaries/</td>
+ <td>
+ The binaries directory holds specific Ant releases bundled in both ZIP and tar.gz compression
+ formats. The named releases are in contrast to the ant-current-bin.zip file in the parent
+ directory, which is always guaranteed to be the most current release of Ant.
+ </td>
+</tr>
+<tr>
+ <td>common/</td>
+ <td>
+ The common directory holds various files, such as the Apache License file that Ant is licensed
+ under, that people may wish to examine without having to download the whole Ant distribution.
+ </td>
+</tr>
+<tr>
+ <td>source/</td>
+ <td>
+ The source directory holds the source code for specific Ant releases bundled in both ZIP and
+ tar.gz compression formats. The named releases are in contrast to the ant-current-src.zip file
+ in the parent directory, which is always guaranteed to hold the source code for the most current
+ release of Ant.
+ </td>
+</tr>
+</table>
+
+<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 NT-platforms, OS/2 Warp, Novell Netware 6, OpenVMS and MacOS X.
+The platforms used most for development are, in no particular order,
+Linux, MacOS X, Windows XP and Unix; these are therefore that platforms
+that tend to work best. As of Ant1.7, Windows 9x is no longer supported.
+
+<p>
+For the current version of Ant, you will also need a JDK installed on
+your system, version 1.4 or later required, 1.7 or later strongly recommended.
+The more up-to-date the version of Java , the more Ant tasks you get.
+</p>
+<p>
+ <strong>Note: </strong>If a JDK is not present, only the JRE runtime, then many tasks will not work.
+</p>
+<p>
+ <strong>Note: </strong>
+ Ant 1.8.* works with jdk1.4 and higher, Ant 1.7.* works with jdk1.3 and higher, Ant 1.6.* works with jdk 1.2 and higher,
+ Ant 1.2 to Ant 1.5.* work with jdk 1.1 and higher.
+</p>
+
+<h3>Open Source Java Runtimes</h3>
+<p>
+ The Ant team strongly supports users running Ant on <a target="_blank" href="http://openjdk.java.net/">OpenJDK</a> and other
+ open source Java runtimes, and so strives to have a product that works
+ well on those platforms.
+</p>
+<hr>
+<h2><a name="installing">Installing Ant</a></h2>
+<p>The binary distribution of Ant consists of the following directory layout:
+<pre>
+ ant
+ +--- README, LICENSE, fetch.xml, other text files. //basic information
+ +--- bin // contains launcher scripts
+ |
+ +--- lib // contains Ant jars plus necessary dependencies
+ |
+ +--- docs // contains documentation
+ | |
+ | +--- images // various logos for html documentation
+ | |
+ | +--- manual // Ant documentation (a must read ;-)
+ |
+ +--- etc // contains xsl goodies to:
+ // - create an enhanced report from xml output of various tasks.
+ // - migrate your build files and get rid of 'deprecated' warning
+ // - ... and more ;-)
+</pre>
+
+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
+files there. This directory will be known as ANT_HOME.
+</p>
+
+<table width="80%">
+<tr>
+ <td colspan="2">
+ <b>Windows 95, Windows 98 &amp; Windows ME Note:</b>
+ </td>
+</tr>
+<tr>
+ <td width="5%">&nbsp;</td>
+ <td><i>
+Note that current releases of Ant no longer support these systems. If you are using an older
+version of Ant, however, the script used to launch Ant will have
+problems if ANT_HOME is a long filename (i.e. a filename which is not
+of the format known as &quot;8.3&quot;). 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>, 8.3 path, such as C:\Ant. </i>
+ </td>
+</tr>
+<tr>
+ <td width="5%">&nbsp;</td>
+ <td>
+ <p>On these systems you will also need to configure more environment
+ space to cater for the environment variables used in the Ant launch script.
+ To do this, you will need to add or update the following line in
+ the <code>config.sys</code> file
+ </p>
+ <p><code>shell=c:\command.com c:\ /p /e:32768</code></p>
+ </td>
+</tr>
+</table>
+
+<h3><a name="setup">Setup</a></h3>
+<p>
+Before you can run Ant there is some additional set up you
+will need to do unless you are installing the <a href="#jpackage">RPM
+version from jpackage.org</a>:</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, Ant's
+startup 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>Operating System-specific instructions for doing this from the command
+line are in the <a href="#windows">Windows</a>, <a href="#bash">Linux/Unix (bash)</a>,
+and <a href="#tcshcsh">Linux/Unix (csh)</a> sections. Note that using this method,
+the settings will only be valid for the command line session you run them in.</p>
+<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>
+
+<table width="80%">
+<tr>
+ <td colspan="2">
+ <b>Windows Note:</b>
+ </td>
+</tr>
+<tr>
+ <td width="5%">&nbsp;</td>
+ <td>
+ The ant.bat script makes use of three environment variables -
+ ANT_HOME, CLASSPATH and JAVA_HOME. <b>Ensure</b> that ANT_HOME and JAVA_HOME variables are set,
+ and that they do <b><u>not</u></b> have quotes (either
+ ' or &quot;) and they do <b><u>not</u></b> end with \ or with /. CLASSPATH should be unset or
+ empty.
+ </td>
+</tr>
+</table>
+
+<h3><a name="checkInstallation">Check Installation</a></h3>
+<p>You can check the basic installation with opening a new shell and typing <tt>ant</tt>. You
+should get a message like this
+<pre>
+Buildfile: build.xml does not exist!
+Build failed
+</pre>
+So Ant works. This message is there because you need to write an individual buildfile for your
+project. With a <tt>ant -version</tt> you should get an output like
+<pre>
+Apache Ant(TM) version 1.9.2 compiled on July 8 2013
+</pre>
+</p>
+<p>If this does not work ensure your environment variables are set right. They must resolve to:
+<ul>
+ <li>required: %ANT_HOME%\bin\ant.bat</li>
+ <li>optional: %JAVA_HOME%\bin\java.exe</li>
+ <li>required: %PATH%=...<i>maybe-other-entries</i>...;%ANT_HOME%\bin;...<i>maybe-other-entries</i>...</li>
+</ul>
+<b>ANT_HOME</b> is used by the launcher script for finding the libraries.
+<b>JAVA_HOME</b> is used by the launcher for finding the JDK/JRE to use. (JDK is recommended as some tasks
+require the java tools.) If not set, the launcher tries to find one via the %PATH% environment variable.
+<b>PATH</b> is set for user convenience. With that set you can just start <i>ant</i> instead of always typing
+<i>the/complete/path/to/your/ant/installation/bin/ant</i>.
+</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 together with the core Ant tasks.</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 must be added to Ant's classpath, in any of the following ways:
+</p>
+<ul>
+ <li><p>
+ In <code><i>ANT_HOME</i>/lib</code>. This makes the JAR files available to all
+ Ant users and builds.
+ </p></li>
+
+ <li><p>
+ In <code>${user.home}/.ant/lib</code> (as of Ant 1.6). This
+ allows different users to add new libraries to Ant. All JAR files
+ added to this directory are available to command-line Ant.
+ </p></li>
+
+ <li><p>
+ On the command line with a <code>-lib</code> parameter. This lets
+ you add new JAR files on a case-by-case basis.
+ </p></li>
+
+ <li><p>
+ In the <code>CLASSPATH</code> environment variable. Avoid this; it makes
+ the JAR files visible to <i>all</i> Java applications, and causes
+ no end of support calls. See <a href="#classpath">below</a> for details.
+ </p>
+ </li>
+
+ <li><p>
+ In some <code>&lt;classpath&gt;</code> accepted by the task itself.
+ For example, as of Ant 1.7.0 you can run the <code>&lt;junit&gt;</code>
+ task without <code>junit.jar</code> in Ant's own classpath, so long as
+ it is included (along with your program and tests) in the classpath
+ passed when running the task.
+ </p><p>
+ Where possible, this option is generally
+ to be preferred, as the Ant script itself can determine the best path
+ to load the library from: via relative path from the basedir (if you
+ keep the library under version control with your project), according
+ to Ant properties, environment variables, Ivy downloads, whatever you like.
+ </p></li>
+
+</ul>
+
+<p>
+ If you are using the binary version of Ant, or if you are working from source
+ code, you can easily gather most of the dependencies and install them for use
+ with your Ant tasks. In your <code>ANT_HOME</code> directory you should see a
+ file called <code>fetch.xml</code>. This is an Ant script that you can run to
+ install almost all the dependencies the optional Ant tasks need.
+</p>
+
+<p>
+ To do so, change to the <code>ANT_HOME</code> directory and execute the command:
+</p>
+
+<blockquote>
+ <pre>ant -f fetch.xml -Ddest=<i>[option]</i></pre>
+</blockquote>
+
+<p>
+ where option is one of the following, as described above:
+ <ul>
+ <li><code>system</code> - store in Ant's lib directory <i>(Recommended)</i></li>
+ <li><code>user</code> - store in the user's home directory</li>
+ <li><code>optional</code> - store in Ant's source code lib/optional directory, used if building Ant source code</li>
+ </ul>
+</p>
+
+<p>
+ You may also need to set proxy settings. See the <a href="#proxy">Proxy Settings</a> section for details.
+</p>
+
+<p>
+Note that not all dependencies are gathered using <code>fetch.xml</code>. Tasks that depend on
+commercial software, in particular, will require you to have the commercial software installed
+in order to be used.
+</p>
+
+<p>The Apache Ant Project also provides additional tasks and types that are available as separately
+downloaded Ant Libraries. You can see the the list of available Antlibs at
+the <a href="http://ant.apache.org/antlibs/proper.html" target="_top">Ant Libraries</a> page.
+</p>
+
+<p>You can also find tasks and types provided by third-party projects at the
+<a href="http://ant.apache.org/external.html" target="_top">External Tools and Tasks</a> page.
+</p>
+
+<p>
+ IDEs have different ways of adding external JAR files and third-party tasks
+ to Ant. Usually it is done by some configuration dialog. Sometimes JAR files
+ added to a project are automatically added to ant's classpath.
+</p>
+
+<h3><a name="classpath">The <code>CLASSPATH</code> environment variable</a></h3>
+<p>
+
+The <code>CLASSPATH</code> environment variable is a source of many Ant support queries. As
+the round trip time for diagnosis on the Ant user mailing list can be slow, and
+because filing bug reports complaining about 'ant.bat' not working will be
+rejected by the developers as WORKSFORME "this is a configuration problem, not a
+bug", you can save yourself a lot of time and frustration by following some
+simple steps.
+
+</p>
+<ol>
+
+<li>Do not ever set <code>CLASSPATH</code>. Ant does not need it, it only causes confusion
+and breaks things.
+
+</li>
+
+<li>If you ignore the previous rule, do not ever, ever, put quotes in the
+<code>CLASSPATH</code>, even if there is a space in a directory. This will break Ant, and it
+is not needed. </li>
+
+<li>If you ignore the first rule, do not ever, ever, have a trailing backslash
+in a <code>CLASSPATH</code>, as it breaks Ant's ability to quote the string. Again, this is
+not needed for the correct operation of the <code>CLASSPATH</code> environment variable, even
+if a DOS directory is to be added to the path. </li>
+
+<li>You can stop Ant using the <code>CLASSPATH</code> environment variable by setting the
+<code>-noclasspath</code> option on the command line. This is an easy way
+to test for classpath-related problems.</li>
+
+</ol>
+
+<p>
+
+The usual symptom of <code>CLASSPATH</code> problems is that ant will not run with some error
+about not being able to find <code>org.apache.tools.ant.launch.Launcher</code>, or, if you have got the
+quotes/backslashes wrong, some very weird Java startup error. To see if this is
+the case, run <code>ant -noclasspath</code> or unset the <code>CLASSPATH</code> environment
+variable.
+
+</p>
+
+<p>
+You can also make your Ant script reject this environment
+variable just by placing the following at the top of the script (or in an init target):
+</p>
+<pre>
+&lt;property environment="env."/&gt;
+&lt;property name="env.CLASSPATH" value=""/&gt;
+&lt;fail message="Unset $CLASSPATH / %CLASSPATH% before running Ant!"&gt;
+ &lt;condition&gt;
+ &lt;not&gt;
+ &lt;equals arg1="${env.CLASSPATH}" arg2=""/&gt;
+ &lt;/not&gt;
+ &lt;/condition&gt;
+&lt;/fail&gt;
+</pre>
+
+<h3><a name="proxy">Proxy Configuration</a></h3>
+
+<p> Many Ant built-in and third-party tasks use network connections to retrieve
+files from HTTP servers. If you are behind a firewall with a proxy server, then
+Ant needs to be configured with the proxy. Here are the different ways to do
+this. </p>
+
+<ul>
+
+<li><b>With Java1.5 or above</b><br>
+
+<p>
+When you run Ant on Java1.5 or above, you could try to use the automatic proxy setup
+mechanism with <code>-autoproxy</code>.
+</p>
+
+</li>
+
+<li><b>With explicit JVM properties.</b><br>
+<p>
+These are documented in <a
+href="http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html" target="_top">Java's Networking Properties</a>,
+and control the proxy behaviour of the entire JVM. To set them in Ant, declare
+them in the <code>ANT_OPTS</code> environment variable. This is the best option
+for a non-mobile system. For a laptop, you have to change these settings as you
+roam. To set ANT_OPTS:
+</p>
+<blockquote>
+<p>
+ For csh/tcsh:
+</p>
+<pre>
+ setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+<p>
+ For bash:
+</p>
+<pre>
+ export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
+</pre>
+<p>
+ For Windows, set the environment variable in the appropriate dialog box
+ and open a new console. or, by hand
+</p>
+<pre>
+ set ANT_OPTS = -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
+</pre>
+</p>
+</blockquote>
+</li>
+
+<li><b>In the build file itself</b><br>
+
+<p>
+If you are writing a build file that is always to be used behind the firewall,
+the &lt;setproxy&gt; task lets you configure the proxy (which it does by setting
+the JVM properties). If you do this, we strongly recommend using ant properties
+to define the proxy host, port, etc, so that individuals can override the
+defaults.</li>
+</p>
+
+</ul>
+
+<p> The Ant team acknowledges that this is unsatisfactory. Until the JVM
+automatic proxy setup works properly everywhere, explicit JVM options via
+ANT_ARGS are probably the best solution. Setting properties on Ant's
+command line do not work, because those are <i>Ant properties</i> being set, not
+JVM options. This means the following does not set up the command line:
+
+</p>
+
+<pre>ant -Dhttp.proxyHost=proxy -Dhttp.proxyPort=81</pre>
+
+<p> All it does is set up two Ant properties.</p>
+
+<p>One other troublespot with
+proxies is with authenticating proxies. Ant cannot go beyond what the JVM does
+here, and as it is very hard to remotely diagnose, test and fix proxy-related
+problems, users who work behind a secure proxy will have to spend much time
+configuring the JVM properties until they are happy. </p>
+
+
+<h3><a name="windows">Windows and OS/2</a></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.7.0_51
+set PATH=%PATH%;%ANT_HOME%\bin</pre>
+
+<h3><a name="bash">Linux/Unix (bash)</a></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/jdk1.7.0_51
+export PATH=${PATH}:${ANT_HOME}/bin</pre>
+
+<h3><a name="tcshcsh">Linux/Unix (csh)</a></h3>
+<pre>setenv ANT_HOME /usr/local/ant
+setenv JAVA_HOME /usr/local/jdk/jdk1.7.0_51
+set path=( $path $ANT_HOME/bin )</pre>
+
+<p>
+Having a symbolic link set up to point to the JVM/JDK version makes updates more seamless. </p>
+<a name="jpackage"></a>
+<h3>RPM version from jpackage.org</h3>
+<p>
+The <a href="http://www.jpackage.org" target="_top">JPackage project</a> distributes an RPM version of Ant.
+With this version, it is not necessary to set <code> JAVA_HOME </code>or
+<code> ANT_HOME </code>environment variables and the RPM installer will correctly
+place the Ant executable on your path.
+</p>
+ <p>
+ <b>NOTE:</b> <em>Since Ant 1.7.0</em>, if the <code>ANT_HOME</code>
+ environment variable is set, the jpackage distribution will be
+ ignored.
+ </p>
+ <p>
+Optional jars for the JPackage version are handled in two ways. The easiest, and
+best way is to get these external libraries from JPackage if JPackage has them
+available. (Note: for each such library, you will have to get both the external
+package itself (e.g. <code>oro-2.0.8-2jpp.noarch.rpm</code>) and the small library that links
+ant and the external package (e.g. <code>ant-apache-oro-1.6.2-3jpp.noarch.rpm</code>).
+</p><p>
+However, JPackage does not package proprietary software, and since some of the
+optional packages depend on proprietary jars, they must be handled as follows.
+This may violate the spirit of JPackage, but it is necessary if you need these proprietary packages.
+For example, suppose you want to install support for netrexx, which jpackage does not
+support:
+<ol>
+<li>Decide where you want to deploy the extra jars. One option is in <code>$ANT_HOME/lib</code>,
+which, for JPackage is usually <code>/usr/share/ant/lib</code>. Another, less messy option
+is to create an <code>.ant/lib</code> subdirectory of your home directory and place your
+non-jpackage ant jars there, thereby avoiding mixing jpackage
+libraries with non-jpackage stuff in the same folder.
+More information on where Ant finds its libraries is available
+<a href="http://ant.apache.org/manual/running.html#libs">here</a></li>
+<li>Download a non-jpackage binary distribution from the regular
+ <a href="http://ant.apache.org/bindownload.cgi" target="_top">Apache Ant site</a></li>
+<li>Unzip or untar the distribution into a temporary directory</li>
+<li>Copy the linking jar, in this case <code>ant-jai.jar</code>, into the library directory you
+chose in step 1 above.</li>
+<li>Copy the proprietary jar itself into the same directory.</li>
+</ol>
+Finally, if for some reason you are running on a system with both the JPackage and Apache versions of Ant
+available, if you should want to run the Apache version (which will have to be specified with an absolute file name,
+not found on the path), you should use Ant's <code>--noconfig</code> command-line switch to avoid JPackage's classpath mechanism.
+
+
+<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="Tasks/javac.html">javac</a> task or the
+<a href="Tasks/rmic.html">rmic</a> task), then <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="Tasks/exec.html">exec</a> task or the
+<a href="Tasks/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 clone the ant repository from git. See <a href="#sourceEdition">Source Edition</a> for details.</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><b>Note</b>: The bootstrap process of Ant requires a greedy
+compiler like OpenJDK or Oracle's javac. It does not work with gcj or
+kjc.</p>
+
+<p>Make sure you have downloaded any auxiliary jars required to
+build tasks you are interested in. These should be
+added to the <code>lib/optional</code>
+directory of the source tree.
+See <a href="#librarydependencies">Library Dependencies</a>
+for a list of JAR requirements for various features.
+Note that this will make the auxiliary JAR
+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>You can also get most of the auxiliary jar files (ie. the jar files
+that various optional Ant tasks depend on) by running Ant on the
+<code>fetch.xml</code> build file. See <a href="#optionalTasks">Optional
+Tasks</a> for instructions on how to do this.
+</p>
+
+<p>As of version 1.7.0 Ant has a hard dependency on JUnit. The <code>fetch.xml</code> build
+ script will download JUnit automatically, but if you don't use this you must
+ install it manually into <code>lib/optional</code> (download it from
+ <a href="http://junit.org/" target="_top">JUnit.org</a>) if you are
+ using a source distribution of Ant.</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>sh 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>
+
+<li>Create the ant.jar and ant-launcher.jar JAR files</li>
+
+<li>Create optional JARs for which the build had the relevant libraries. If
+a particular library is missing from ANT_HOME/lib/optional, then the matching
+ant- JAR file will not be created. For example, ant-junit.jar is only built
+if there is a junit.jar in the optional directory.</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>sh 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>sh 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>
+
+<p>Ant's build script will try to set executable flags for its shell
+ scripts on Unix-like systems. There are various reasons why the
+ chmod-task might fail (like when you are running the build script as
+ a different user than the one who installed Ant initially). In this
+ case you can set the Ant property <code>chmod.fail</code> to false
+ when starting the build like in
+<blockquote>
+ <p><code>sh build.sh install -Dchmod.fail=false</code></p>
+</blockquote>
+and any error to change permission will not result in a build failure.</p>
+
+<hr>
+<h2><a name="librarydependencies">Library Dependencies</a></h2>
+<p>The following libraries are needed in Ant's classpath
+if you are using the
+indicated feature. Note that only one of the regexp libraries is
+needed for use with the mappers
+(and Java includes a regexp implementation which
+Ant will find automatically).
+You will also need to install the particular
+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>jakarta-regexp-1.3.jar</td>
+ <td>regexp type with mappers (if you do not wish to use java.util.regex)</td>
+ <td><a href="http://attic.apache.org/projects/jakarta-regexp.html" target="_top">http://attic.apache.org/projects/jakarta-regexp.html</a></td>
+ </tr>
+ <tr>
+ <td>jakarta-oro-2.0.8.jar</td>
+ <td>regexp type with mappers (if you do not wish to use java.util.regex)<br>
+ To use the FTP task,
+you need jakarta-oro 2.0.8 or later, and <a href="#commons-net">commons-net</a></td>
+ <td><a href="http://attic.apache.org/projects/jakarta-oro.html" target="_top">http://attic.apache.org/projects/jakarta-oro.html</a></td>
+ </tr>
+ <tr>
+ <td>junit.jar</td>
+ <td><code>&lt;junit&gt;</code> task. May be in classpath passed to task rather than Ant's classpath.</td>
+ <td><a href="http://www.junit.org/" target="_top">http://www.junit.org/</a></td>
+ </tr>
+ <tr>
+ <td>xalan.jar</td>
+ <td>junitreport task</td>
+ <td><a href="http://xml.apache.org/xalan-j/" target="_top">http://xml.apache.org/xalan-j/</a></td>
+ </tr>
+ <tr>
+ <td>antlr.jar</td>
+ <td>antlr task</td>
+ <td><a href="http://www.antlr.org/" target="_top">http://www.antlr.org/</a></td>
+ </tr>
+ <tr>
+ <td>bsf.jar</td>
+ <td>script task
+ <p>
+ <strong>Note</strong>: Ant 1.6 and later require Apache BSF, not
+ the IBM version. I.e. you need BSF 2.3.0-rc1 or later.
+ </p>
+ <p>
+ <strong>Note</strong>: BSF 2.4.0 is needed to use a post 1.5R3 version
+ of rhino's javascript.
+ </p>
+ <p>
+ <strong>Note</strong>: BSF 2.4.0 uses jakarta-commons-logging
+ so it needs the commons-logging.jar.
+ </p>
+ </td>
+ <td><a href="http://jakarta.apache.org/bsf/" target="_top">http://jakarta.apache.org/bsf/</a></td>
+ </tr>
+ <tr>
+ <td>Groovy jars</td>
+ <td>Groovy with script and scriptdef tasks<br>
+ You need to get the groovy jar and two asm jars from a groovy
+ installation. The jars are groovy-[version].jar, asm-[version].jar and
+ asm-util-[version].jar and antlr-[version].jar.
+ As of groovy version 1.0-JSR-06, the jars are
+ groovy-1.0-JSR-06.jar, antlr-2.7.5.jar, asm-2.2.jar and asm-util-2.2.jar.
+ Alternatively one may use the embedded groovy jar file.
+ This is located in the embedded directory of the groovy distribution.
+ This bundles all the needed jar files into one jar file.
+ It is called groovy-all-[version].jar.
+ </td>
+ <td>
+ <a href="http://groovy.codehaus.org/" target="_top">http://groovy.codehaus.org/</a>
+ <br>
+ The asm jars are also available from the creators of asm -
+ <a href="http://asm.objectweb.org/" target="_top">http://asm.objectweb.org/</a>
+ </td>
+ </tr>
+ <tr>
+ <td>netrexx.jar</td>
+ <td>netrexx task, Rexx with the script task</td>
+ <td><a href="http://www.ibm.com/software/awdtools/netrexx/download.html" target="_top">
+ http://www.ibm.com/software/awdtools/netrexx/download.html</a></td>
+ </tr>
+ <tr>
+ <td>js.jar</td>
+ <td>Javascript with script task<br>
+ If you use Apache BSF 2.3.0-rc1, you must use rhino 1.5R3 (later
+ versions of BSF (e.g. version 2.4.0) work with 1.5R4 and higher).</td>
+ <td><a href="http://www.mozilla.org/rhino/" target="_top">http://www.mozilla.org/rhino/</a></td>
+ </tr>
+ <tr>
+ <td>jython.jar</td>
+ <td>Python with script task<br>
+ Warning : jython.jar also contains classes from jakarta-oro.
+ Remove these classes if you are also using jakarta-oro.</td>
+ <td><a href="http://jython.sourceforge.net/" target="_top">http://jython.sourceforge.net/</a></td>
+ </tr>
+ <tr>
+ <td>jpython.jar</td>
+ <td>Python with script task <b>deprecated, jython is the preferred engine</b></td>
+ <td><a href="http://www.jpython.org/" target="_top">http://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/software/java/" target="_top">http://www.scriptics.com/software/java/</a></td>
+ </tr>
+ <tr>
+ <td>BeanShell JAR(s)</td>
+ <td>BeanShell with script task.
+ <br>
+ <strong>Note</strong>: Ant requires BeanShell version 1.3 or
+ later</td>
+ <td><a href="http://www.beanshell.org/" target="_top">http://www.beanshell.org/</a></td>
+ </tr>
+ <tr>
+ <td>jruby.jar</td>
+ <td>Ruby with script task</td>
+ <td><a href="http://jruby.org/" target="_top">http://jruby.org/</a></td>
+ </tr>
+ <tr>
+ <td>judo.jar</td>
+ <td>Judoscript with script task</td>
+ <td><a href="http://www.judoscript.org/" target="_top">http://www.judoscript.org/</a></td>
+ </tr>
+ <tr>
+ <td>commons-logging.jar</td>
+ <td>CommonsLoggingListener</td>
+ <td><a href="http://commons.apache.org/logging/"
+ target="_top">http://commons.apache.org/logging/</a></td>
+ </tr>
+ <tr>
+ <td>log4j.jar</td>
+ <td>Log4jListener</td>
+ <td><a href="http://logging.apache.org/log4j/"
+ target="_top">http://logging.apache.org/log4j/</a></td>
+ </tr>
+ <tr>
+ <td><a name="commons-net">commons-net.jar</a></td>
+ <td>ftp, rexec and telnet tasks<br>
+ jakarta-oro 2.0.8 or later is required together with commons-net 1.4.0.<br>
+ For all users, a minimum version of commons-net of 1.4.0 is recommended. Earlier
+ versions did not support the full range of configuration options, and 1.4.0 is needed
+ to compile Ant.
+ </td>
+ <td><a href="http://commons.apache.org/net/"
+ target="_top">http://commons.apache.org/net/</a></td>
+ </tr>
+ <tr>
+ <td>bcel.jar</td>
+ <td>classfileset data type,
+ JavaClassHelper used by the ClassConstants filter reader and
+ optionally used by ejbjar for dependency determination
+ </td>
+ <td><a href="http://commons.apache.org/bcel/" target="_top">http://commons.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://www.oracle.com/technetwork/java/index-138643.html"
+ target="_top">http://www.oracle.com/technetwork/java/index-138643.html</a></td>
+ </tr>
+ <tr>
+ <td>activation.jar</td>
+ <td>Mail task with Mime encoding, and the MimeMail task</td>
+ <td><a href="http://www.oracle.com/technetwork/java/javase/jaf-135115.html"
+ target="_top">http://www.oracle.com/technetwork/java/javase/jaf-135115.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>
+ <tr>
+ <td>resolver.jar <b>1.1beta or later</b></td>
+ <td>xmlcatalog datatype <em>only if support for external catalog files is desired</em></td>
+ <td><a href="http://xml.apache.org/commons/"
+ target="_top">http://xml.apache.org/commons/</a>.</td>
+ </tr>
+ <tr>
+ <td>jsch.jar <b>0.1.50 or later</b></td>
+ <td>sshexec and scp tasks</td>
+ <td><a href="http://www.jcraft.com/jsch/index.html"
+ target="_top">http://www.jcraft.com/jsch/index.html</a></td>
+ </tr>
+ <tr>
+ <td>JAI - Java Advanced Imaging</td>
+ <td>image task</td>
+ <td><a href="https://jai.dev.java.net/"
+ target="_top">https://jai.dev.java.net/</a></td>
+ </tr>
+</table>
+<br>
+<h2><a name="Troubleshooting">Troubleshooting</a></h2>
+
+
+<h3><a name="diagnostics">Diagnostics</a></h3>
+
+<p> Ant has a built in diagnostics feature. If you run <code>ant
+-diagnostics</code> ant will look at its internal state and print it out. This
+code will check and print the following things. </p>
+
+<ul>
+
+<li>Where Ant is running from. Sometimes you can be surprised.</li>
+
+<li>The version of ant.jar and of the ant-*.jar containing the optional tasks -
+ and whether they match</li>
+
+<li>Which JAR files are in ANT_HOME/lib
+
+<li>Which optional tasks are available. If a task is not listed as being
+available, either it is not present, or libraries that it depends on are
+absent.</li>
+
+
+<li>XML Parser information</li>
+
+<li>JVM system properties
+</li>
+
+<li>The status of the temp directory. If this is not writable, or its clock is
+horribly wrong (possible if it is on a network drive), a lot of tasks will fail
+with obscure error messages.</li>
+
+<li>The current time zone as Java sees it. If this is not what it should be for
+your location, then dependency logic may get confused.
+
+</ul>
+
+<p>
+ Running <code>ant -diagnostics</code> is a good way to check that ant is
+ installed. It is also a first step towards self-diagnosis of any problem.
+ Any configuration problem reported to the user mailing list will probably
+ result ins someone asking you to run the command and show the results, so
+ save time by using it yourself.
+</p>
+
+<p>
+ For under-IDE diagnostics, use the &lt;diagnostics&gt; task to run the same
+ tests as an ant task. This can be added to a diagnostics target in a build
+ file to see what tasks are available under the IDE, what the XML parser and
+ classpath is, etc.
+</p>
+
+<h3><a name="ant-user">user mailing list</a></h3>
+
+<p> If you cannot get Ant installed or working, the Ant user mailing list is the
+best place to start with any problem. Please do your homework first, make sure
+that it is not a <a href="#classpath"><code>CLASSPATH</code></a> problem, and run a <a
+href="#diagnostics">diagnostics check</a> to see what Ant thinks of its own
+state. Why the user list, and not the developer list?
+Because there are more users than developers, so more people who can help you. </p>
+
+<p>
+
+Please only file a bug report against Ant for a configuration/startup problem if
+there really is a fixable bug in Ant related to configuration, such as it not
+working on a particular platform, with a certain JVM version, etc, or if you are
+advised to do it by the user mailing list.
+</p>
+
+
+
+
+</body>
+</html>