|
- <!--
- 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>Running Apache Ant</title>
- </head>
-
- <body>
-
- <h1>Running Apache Ant</h1>
- <h2 id="commandline">Command Line</h2>
-
- <p>If you've installed Apache Ant as described in
- the <a href="install.html">Installing Ant</a> section, running Ant
- from the command-line is simple: just type <kbd>ant</kbd>.</p>
-
- <p>When no arguments are specified, Ant looks for
- a <samp>build.xml</samp> file in the current directory and, if found,
- uses that file as the build file and runs the target specified in
- the <var>default</var> attribute of the <code><project></code>
- tag. To make Ant use a build file other than <samp>build.xml</samp>,
- use the command-line option <kbd>-buildfile <i>file</i></kbd>,
- where <code><i>file</i></code> is the name of the build file you want to use (or
- a directory containing a <samp>build.xml</samp> file).</p>
-
- <p>If you use the <kbd>-find [<i>file</i>]</kbd> option, Ant will
- search for a build file first in the current directory, then in the
- parent directory, and so on, until either a build file is found or the
- root of the filesystem has been reached. By default, it will look for
- a build file called <samp>build.xml</samp>. To have it search for a
- build file other than <samp>build.xml</samp>, specify a file
- argument. <strong>Note</strong>: If you include any other flags or
- arguments on the command line after the <kbd>-find</kbd> flag, you
- must include the file argument for the <kbd>-find</kbd> flag, even
- if the name of the build file you want to find
- is <samp>build.xml</samp>.</p>
-
- <p>You can also set <a href="using.html#properties">properties</a> on
- the command line. This can be done with
- the <kbd>-D<i>property</i>=<i>value</i></kbd> option,
- where <em>property</em> is the name of the property,
- and <em>value</em> is the value for that property. If you specify a
- property that is also set in the build file (see
- the <a href="Tasks/property.html">property</a> task), the value
- specified on the command line will override the value specified in the
- build file. Defining properties on the command line can also be used
- to pass in the value of environment variables; just
- pass <kbd>-DMYVAR=%MYVAR%</kbd> (Windows)
- or <kbd>-DMYVAR=$MYVAR</kbd> (Unix) to Ant. You can then access
- these variables inside your build file as <code>${MYVAR}</code>. You
- can also access environment variables using
- the <a href="Tasks/property.html">property</a>
- task's <var>environment</var> attribute.</p>
-
- <p>Options that affect the amount of logging output by Ant
- are: <kbd>-quiet</kbd>, which instructs Ant to print less
- information to the console; <kbd>-verbose</kbd>, which causes Ant to
- print additional information to the console; <kbd>-debug</kbd>,
- which causes Ant to print considerably more additional information;
- and <kbd>-silent</kbd> which makes Ant print nothing but task output
- and build failures (useful to capture Ant output by scripts).</p>
-
- <p>It is also possible to specify one or more targets that should be
- executed. When omitted, the target that is specified in
- the <var>default</var> attribute of
- the <a href="using.html#projects"><code>project</code></a> tag is
- used.</p>
-
- <p>The <kbd>-projecthelp</kbd> option prints out a list of the build
- file's targets. Targets that include a <var>description</var>
- attribute are listed as "Main targets", those without
- a <var>description</var> are listed as "Other targets", then
- the "Default" target is listed ("Other targets" are only
- displayed if there are no main targets, or if Ant is invoked
- in <kbd>-verbose</kbd> or <kbd>-debug</kbd> mode).</p>
-
- <h3 id="options">Command-line Options Summary</h3>
- <pre class="output">ant [options] [target [target2 [target3] ...]]
- Options:
- -help, -h print this message and exit
- -projecthelp, -p print project help information and exit
- -version print the version information and exit
- -diagnostics print information that might be helpful to
- diagnose or report problems and exit
- -quiet, -q be extra quiet
- -silent, -S print nothing but task outputs and build failures
- -verbose, -v be extra verbose
- -debug, -d print debugging information
- -emacs, -e produce logging information without adornments
- -lib <path> specifies a path to search for jars and classes
- -logfile <file> use given file for log
- -l <file> ''
- -logger <classname> the class which is to perform logging
- -listener <classname> add an instance of class as a project listener
- -noinput do not allow interactive input
- -buildfile <file> use given buildfile
- -file <file> ''
- -f <file> ''
- -D<property>=<value> use value for given property
- -keep-going, -k execute all targets that do not depend
- on failed target(s)
- -propertyfile <name> load all properties from file with -D
- properties taking precedence
- -inputhandler <class> the class which will handle input requests
- -find <file> (s)earch for buildfile towards the root of
- -s <file> the filesystem and use it
- -nice number A niceness value for the main thread:
- 1 (lowest) to 10 (highest); 5 is the default
- -nouserlib Run ant without using the jar files from ${user.home}/.ant/lib
- -noclasspath Run ant without using CLASSPATH
- -autoproxy Java 5+ : use the OS proxies
- -main <class> override Ant's normal entry point
- </pre>
- <p>For more information about <kbd>-logger</kbd>
- and <kbd>-listener</kbd> see <a href="listeners.html">Loggers &
- Listeners</a>.
- <p>For more information about <kbd>-inputhandler</kbd>
- see <a href="inputhandler.html">InputHandler</a>.
- <p>Easiest way of changing the exit-behaviour is subclassing the
- original main class:</p>
- <pre>
- public class CustomExitCode extends org.apache.tools.ant.Main {
- protected void exit(int exitCode) {
- // implement your own behaviour, e.g. NOT exiting the JVM
- }
- }
- </pre>
- <p>and starting Ant with access (<kbd>-lib <i>path-to-class</i></kbd>)
- to this class.</p>
-
- <h3 id="libs">Library Directories</h3>
-
- <p>Prior to Ant 1.6, all jars in the <samp>ANT_HOME/lib</samp> would
- be added to the <samp>CLASSPATH</samp> used to run Ant. This was done
- in the scripts that started Ant. <em>Since Ant 1.6</em>, two
- directories are scanned by default and more can be added as
- required. The default directories scanned
- are <samp>ANT_HOME/lib</samp> and a user specific
- directory, <samp>${user.home}/.ant/lib</samp>. This arrangement allows
- the Ant installation to be shared by many users while still allowing
- each user to deploy additional jars. Such additional jars could be
- support jars for Ant's optional tasks or jars containing third-party
- tasks to be used in the build. It also allows the main Ant
- installation to be locked down which will please system
- administrators.</p>
-
- <p>Additional directories to be searched may be added by using
- the <kbd>-lib</kbd> option. The <kbd>-lib</kbd> option specifies
- a search path. Any jars or classes in the directories of the path will
- be added to Ant's classloader. The order in which jars are added to
- the classpath is as follows:</p>
-
- <ul>
- <li>jars in the order specified by the <kbd>-lib</kbd> options on the command line</li>
- <li>jars from <samp>${user.home}/.ant/lib</samp> (unless <kbd>-nouserlib</kbd> is set)</li>
- <li>jars from <samp>ANT_HOME/lib</samp></li>
- </ul>
-
- <p>Note that the <code>CLASSPATH</code> environment variable is passed
- to Ant using a <kbd>-lib</kbd> option. Ant itself is started with a
- very minimalistic classpath. Ant should work perfectly well with an
- empty <code>CLASSPATH</code> environment variable, something the
- the <kbd>-noclasspath</kbd> option actually enforces. We get many more
- support calls related to classpath problems (especially quoting
- problems) than we like.</p>
-
- <p>The location of <samp>${user.home}/.ant/lib</samp> is somewhat
- dependent on the JVM. On Unix systems <samp>${user.home}</samp> maps
- to the user's home directory whilst on recent versions of Windows it
- will be somewhere such
- as <code>C:\Users\<i>username</i>\.ant\lib</code>. You should consult
- your JVM documentation for more details.</p>
-
- <h3>Examples</h3>
-
- <pre class="input">ant</pre>
- <p>runs Ant using the <samp>build.xml</samp> file in the current
- directory, on the default target.</p>
-
- <pre class="input">ant -buildfile test.xml</pre>
- <p>runs Ant using the <samp>test.xml</samp> file in the current
- directory, on the default target.</p>
-
- <pre class="input">ant -buildfile test.xml dist</pre>
- <p>runs Ant using the <samp>test.xml</samp> file in the current
- directory, on the target called <samp>dist</samp>.</p>
-
- <pre class="input">ant -buildfile test.xml -Dbuild=build/classes dist</pre>
- <p>runs Ant using the <samp>test.xml</samp> file in the current
- directory, on the target called <samp>dist</samp>, setting
- the <code>build</code> property to the value <q>build/classes</q>.</p>
-
- <pre class="input">ant -lib /home/ant/extras</pre>
- <p>runs Ant picking up additional task and support jars from
- the <samp>/home/ant/extras</samp> location</p>
-
- <pre class="input">ant -lib one.jar;another.jar</pre>
- <pre class="input">ant -lib one.jar -lib another.jar</pre>
- <p>adds two jars to Ants classpath.</p>
-
- <h3 id="files">Files</h3>
-
- <p>The Ant wrapper script for Unix will source (read and evaluate) the
- file <samp>~/.antrc</samp> before it does anything. On Windows, the
- Ant wrapper batch-file invokes <samp>%HOME%\antrc_pre.bat</samp> at
- the start and <samp>%HOME%\antrc_post.bat</samp> at the end. You can
- use these files, for example, to set/unset environment variables that
- should only be visible during the execution of Ant. See the next
- section for examples.</p>
-
- <h3 id="envvars">Environment Variables</h3>
-
- <p>The wrapper scripts use the following environment variables (if set):</p>
-
- <ul>
- <li><code>JAVACMD</code>—full path of the Java executable. Use this
- to invoke a different JVM than <samp>JAVA_HOME/bin/java(.exe)</samp>.</li>
-
- <li><code>ANT_OPTS</code>—command-line arguments that should be
- passed to the JVM. For example, you can define system properties or set
- the maximum Java heap size here.</li>
-
- <li><code>ANT_ARGS</code>—Ant command-line arguments. For example,
- set <code>ANT_ARGS</code> to point to a different logger, include a
- listener, and to include the <kbd>-find</kbd> flag.<br/>
- <strong>Note</strong>: If you include <kbd>-find</kbd>
- in <code>ANT_ARGS</code>, you should include the name of the build file
- to find, even if the file is called <samp>build.xml</samp>.</li>
- </ul>
-
- <h3 id="sysprops">Java System Properties</h3>
- <p>Some of Ant's core classes can be configured via system properties.</p>
- <p>Here is the result of a search through the codebase. Because system
- properties are available via Project instance, I searched for them with a</p>
- <pre class="input">grep -r -n "getPropert" * > ..\grep.txt</pre>
- <p>command. After that I filtered out the often-used but
- not-so-important values (most of them read-only
- values): <code>path.separator</code>, <code>ant.home</code>, <code>basedir</code>,
- <code>user.dir</code>, <code>os.name</code>, <code>line.separator</code>,
- <code>java.home</code>, <code>java.version</code>, <code>java.version</code>,
- <code>user.home</code>, <code>java.class.path</code><br/>
- And I filtered out the <code>getPropertyHelper</code> access.</p>
-
- <table>
- <tr>
- <th scope="col">property name</th>
- <th scope="col">valid values/default value</th>
- <th scope="col">description</th>
- </tr>
- <tr>
- <td><code>ant.build.javac.source</code></td>
- <td>Source-level version number</td>
- <td>Default <var>source</var> value
- for <code><javac></code>/<code><javadoc></code></td>
- </tr>
- <tr>
- <td><code>ant.build.javac.target</code></td>
- <td>Class-compatibility version number</td>
- <td>Default <var>target</var> value for <code><javac></code></td>
- </tr>
- <tr>
- <td><code>ant.executor.class</code></td>
- <td>classname; default is <q>org.<wbr>apache.<wbr>tools.<wbr>ant.<wbr>helper.<wbr>DefaultExecutor</q></td>
- <td><em>Since Ant 1.6.3</em> Ant will delegate Target invocation to
- the <code class="code">org.apache.tools.ant.Executor</code>
- implementation specified here.</td>
- </tr>
- <tr>
- <td><code>ant.file</code></td>
- <td>read only: full filename of the build file</td>
- <td>This is set to the name of the build
- file. In <a href="Tasks/import.html"><import>-ed</a> files,
- this is set to the containing build file.</td>
- </tr>
- <tr>
- <td><code>ant.file.*</code></td>
- <td>read only: full filename of the build file of Ant projects</td>
- <td>This is set to the name of a file by project; this lets you
- determine the location
- of <a href="Tasks/import.html"><import>-ed</a> files.</td>
- </tr>
- <tr>
- <td><code>ant.input.properties</code></td>
- <td>filename (required)</td>
- <td>Name of the file holding the values for
- the <a href="inputhandler.html">PropertyFileInputHandler</a>.</td>
- </tr>
- <tr>
- <td><code>ant.logger.defaults</code></td>
- <td>filename (optional, default <q>/org/<wbr>apache/<wbr>tools/<wbr>ant/<wbr>listener/<wbr>defaults.properties</q>)</td>
- <td>Name of the file holding the color mappings for
- the <a href="listeners.html#AnsiColorLogger">AnsiColorLogger</a>.</td>
- </tr>
- <tr>
- <td><code>ant.netrexxc.*</code></td>
- <td>several formats</td>
- <td>Use specified values as defaults
- for <a href="Tasks/netrexxc.html">netrexxc</a>.</td>
- </tr>
- <tr>
- <td><code>ant.PropertyHelper</code></td>
- <td>Ant reference name (optional)</td>
- <td>Specify the PropertyHelper to use. The object must be of the
- type <code class="code">org.apache.tools.ant.PropertyHelper</code>. By
- default, an object
- of <code class="code">org.apache.tools.ant.PropertyHelper</code>
- will be used as PropertyHelper.</td>
- </tr>
- <tr>
- <td><code>ant.regexp.regexpimpl</code></td>
- <td>classname</td>
- <td>classname for a RegExp implementation; by default, JDK 1.4+
- implementation; <a href="Types/mapper.html#regexp-mapper">RegExp
- Mapper</a> "Choice of regular expression implementation".</td>
- </tr>
- <tr>
- <td><code>ant.reuse.loader</code></td>
- <td>boolean</td>
- <td>allow to reuse classloaders used
- in <code class="code">org.apache.tools.ant.util.ClasspathUtil</code>.</td>
- </tr>
- <tr>
- <td><code>ant.XmlLogger.stylesheet.uri</code></td>
- <td>filename (default <q>log.xsl</q>)</td>
- <td>Name for the stylesheet to include in the logfile
- by <a href="listeners.html#XmlLogger">XmlLogger</a>.</td>
- </tr>
- <tr>
- <td><code>build.compiler</code></td>
- <td>name</td>
- <td>Specify the default compiler to use;
- see <a href="Tasks/javac.html">javac</a>, <a href="Tasks/ejb.html#ejbjar_weblogic">EJB
- Tasks</a> (<var>compiler</var>
- attribute), <a href="Tasks/javah.html">javah</a>.</td>
- </tr>
- <tr>
- <td><code>build.compiler.emacs</code></td>
- <td>boolean (default <q>false</q>)</td>
- <td>Enable emacs-compatible error messages;
- see <a href="Tasks/javac.html#jikes">javac</a> "Jikes Notes".</td>
- </tr>
- <tr>
- <td><code>build.compiler.fulldepend</code></td>
- <td>boolean (default false)</td>
- <td>Enable full dependency checking;
- see <a href="Tasks/javac.html#jikes">javac</a> "Jikes Notes".</td>
- </tr>
- <tr>
- <td><code>build.compiler.jvc.extensions</code></td>
- <td><em><u>Deprecated</u></em></td>
- <td>Enable Microsoft extensions of their Java compiler;
- see <a href="Tasks/javac.html#jvc">javac</a> "Jvc Notes".</td>
- </tr>
- <tr>
- <td><code>build.compiler.pedantic</code></td>
- <td>boolean (default <q>false</q>)</td>
- <td>Enable pedantic warnings;
- see <a href="Tasks/javac.html#jikes">javac</a> "Jikes Notes".</td>
- </tr>
- <tr>
- <td><code>build.compiler.warnings</code></td>
- <td><em><u>Deprecated</u></em></td>
- <td>See <a href="Tasks/javac.html#jikes">javac</a> "Jikes Notes"</td>
- </tr>
- <tr>
- <td><code>build.rmic</code></td>
- <td>name</td>
- <td>Control the <a href="Tasks/rmic.html">rmic</a> compiler</td>
- </tr>
- <tr>
- <td><code>build.sysclasspath</code></td>
- <td>No default value</td>
- <td>See <a href="sysclasspath.html">its dedicated page</a></td>
- </tr>
- <tr>
- <td><code>file.encoding</code></td>
- <td>name of a supported character set (e.g. UTF-8, ISO-8859-1, US-ASCII)</td>
- <td>use as default character set of email messages; use as default
- for <var>srcencoding</var>, <var>destencoding</var>
- and <var>bundleencoding</var>
- in <a href="Tasks/translate.html">translate</a><br/> see JavaDoc
- of <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html"
- target="_top">java.nio.charset.Charset</a> for more information
- about character sets (not used in Ant, but has nice docs).</td>
- </tr>
- <tr>
- <td><code>jikes.class.path</code></td>
- <td>path</td>
- <td>The specified path is added to the classpath if Jikes is used as compiler.</td>
- </tr>
- <tr>
- <td><code>MailLogger.properties.file</code>, <code>MailLogger.*</code></td>
- <td>filename (optional, defaults derived from Project instance)</td>
- <td>Name of the file holding properties for sending emails by
- the <a href="listeners.html#MailLogger">MailLogger</a>. Override
- properties set inside the buildfile or via command line.</td>
- </tr>
- <tr>
- <td><code>org.apache.tools.ant.ProjectHelper</code></td>
- <td>classname (optional, default <q>org.<wbr>apache.<wbr>tools.<wbr>ant.<wbr>ProjectHelper2</q>)</td>
- <td>specifies the classname to use as ProjectHelper. The class must
- extend <code class="code">org.apache.tools.ant.ProjectHelper</code>.</td>
- </tr>
- <tr>
- <td><code>org.apache.tools.ant.ArgumentProcessor</code></td>
- <td>classname (optional)</td>
- <td>specifies the classname to use as ArgumentProcessor. The class
- must extend <code class="code">org.apache.tools.ant.ArgumentProcessor</code>.</td>
- </tr>
- <tr>
- <td><code>websphere.home</code></td>
- <td>path</td>
- <td>Points to home directory of WebSphere;
- see <a href="Tasks/ejb.html#ejbjar_websphere">EJB Tasks</a></td>
- </tr>
- <tr>
- <td><code>XmlLogger.file</code></td>
- <td>filename (default <q>log.xml</q>)</td>
- <td>Name for the logfile
- for <a href="listeners.html#MailLogger">MailLogger</a>.</td>
- </tr>
- <tr>
- <td><code>ant.project-helper-repo.debug</code></td>
- <td>boolean (default <q>false</q>)</td>
- <td>Set it to <q>true</q> to enable debugging with
- Ant's <a href="projecthelper.html#repository">ProjectHelper internal
- repository</a>.</td>
- </tr>
- <tr>
- <td><code>ant.argument-processor-repo.debug</code></td>
- <td>boolean (default <q>false</q>)</td>
- <td>Set it to <q>true</q> to enable debugging with
- Ant's <a href="argumentprocessor.html#repository">ArgumentProcessor
- internal repository</a>.</td>
- </tr>
- <tr>
- <td><code>ant.tstamp.now</code></td>
- <td>number, seconds since the epoch (midnight 1970-01-01)</td>
- <td rowspan="2">The value to use as current time and date
- for <code><tstamp></code></td>
- </tr>
- <tr>
- <td><code>ant.tstamp.now.iso</code></td>
- <td>ISO-8601 timestamp string like <code>1972-04-17T08:07:00Z</code></td>
- </tr>
- </table>
-
- <p>
- If new properties get added (it happens), expect them to appear under
- the <code>ant.</code> and <code>org.apache.tools.ant.</code> prefixes,
- unless the developers have a very good reason to use another
- prefix. Accordingly, please avoid using properties that begin with
- these prefixes. This protects you from future Ant releases breaking
- your build file.
- </p>
- <h3>return code</h3>
- <p>
- Ant start up scripts (in their Windows and Unix version) return the
- return code of the <code>java</code> program. So a successful build
- returns <q>0</q>, failed builds return other values.
- </p>
-
- <h2 id="cygwin">Cygwin Users</h2>
- <p>
- Unix launch script that come with Ant works correctly with Cygwin. You
- should not have any problems launching Ant from the Cygwin shell. It
- is important to note, however, that once Ant is running it is part of
- the JDK which operates as a native Windows application. The JDK is not
- a Cygwin executable, and it therefore has no knowledge of Cygwin
- paths, etc. In particular when using the <code><exec></code>
- task, executable names such as <q>/bin/sh</q> will not work, even
- though these work from the Cygwin shell from which Ant was
- launched. You can use an executable name such as <q>sh</q> and rely on
- that command being available in the Windows path.
- </p>
-
- <h2 id="os2">OS/2 Users</h2>
- <p>
- The OS/2 launch script was developed to perform complex tasks. It has
- two parts: <kbd>ant.cmd</kbd> which calls Ant
- and <kbd>antenv.cmd</kbd> which sets the environment for Ant. Most
- often you will just call <kbd>ant.cmd</kbd> using the same command
- line options as described above. The behaviour can be modified by a
- number of ways explained below.
- </p>
-
- <p>
- Script <kbd>ant.cmd</kbd> first verifies whether the Ant environment
- is set correctly. The requirements are:
- </p>
- <ol>
- <li>Environment variable <code>JAVA_HOME</code> is set.</li>
- <li>Environment variable <code>ANT_HOME</code> is set.</li>
- <li>Environment variable <code>CLASSPATH</code> is set and contains at least one element from
- <code>JAVA_HOME</code> and at least one element from <code>ANT_HOME</code>.</li>
- </ol>
-
- <p>
- If any of these conditions is violated, script <kbd>antenv.cmd</kbd>
- is called. This script first invokes configuration scripts if there
- exist: the system-wide configuration <kbd>antconf.cmd</kbd> from
- the <samp>%ETC%</samp> directory and then the user
- configuration <kbd>antrc.cmd</kbd> from the <samp>%HOME%</samp>
- directory. At this moment both <code>JAVA_HOME</code>
- and <code>ANT_HOME</code> must be defined
- because <kbd>antenv.cmd</kbd> now adds <samp>classes.zip</samp>
- or <samp>tools.jar</samp> (depending on version of JVM) and everything
- from <samp>%ANT_HOME%\lib</samp> except <samp>ant-*.jar</samp>
- to <code>CLASSPATH</code>. Finally <kbd>ant.cmd</kbd> calls
- per-directory configuration <kbd>antrc.cmd</kbd>. All settings made
- by <kbd>ant.cmd</kbd> are local and are undone when the script
- ends. The settings made by <kbd>antenv.cmd</kbd> are persistent
- during the lifetime of the shell (of course unless called
- automatically from <kbd>ant.cmd</kbd>). It is thus possible to
- call <kbd>antenv.cmd</kbd> manually and modify some settings before
- calling <kbd>ant.cmd</kbd>.
- </p>
-
- <p>
- Scripts <kbd>envset.cmd</kbd> and <kbd>runrc.cmd</kbd> perform
- auxiliary tasks. All scripts have some documentation inside.
- </p>
-
- <h2 id="background">Running Ant as a background process on Unix(-like) systems</h2>
-
- <p>
- If you start Ant as a background process (like in <kbd>ant
- &</kbd>) and the build process creates another process, Ant will
- immediately try to read from standard input, which in turn will most
- likely suspend the process. In order to avoid this, you must redirect
- Ant's standard input or explicitly provide input to each spawned
- process via the input related attributes of the corresponding tasks.
- </p>
-
- <p>
- Tasks that create such new processes
- include <code><exec></code>, <code><apply></code>
- or <code><java></code> when the <var>fork</var> attribute
- is <q>true</q>.
- </p>
-
- <h2 id="viajava">Running Ant via Java</h2>
- <p>
- If you have installed Ant in the do-it-yourself way, Ant can be
- started from one of two entry points:
- </p>
-
- <pre class="input">java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
- <pre class="input">java -Dant.home=c:\ant org.apache.tools.ant.launch.Launcher [options] [target]</pre>
-
- <p>
- The first method runs Ant's traditional entry point. The second method
- uses the Ant Launcher introduced in Ant 1.6. The former method does
- not support the <kbd>-lib</kbd> option and all required classes are
- loaded from the <code>CLASSPATH</code>. You must ensure that all
- required jars are available. At a minimum the <code>CLASSPATH</code>
- should include:
- </p>
-
- <ul>
- <li><samp>ant.jar</samp> and <samp>ant-launcher.jar</samp></li>
- <li>jars/classes for your XML parser</li>
- <li>the JDK's required jar/zip files</li>
- </ul>
-
- <p>
- The latter method supports
- the <kbd>-lib</kbd>, <kbd>-nouserlib</kbd>, <kbd>-noclasspath</kbd>
- options and will load jars from the
- specified <code>ANT_HOME</code>. You should start the latter with the
- most minimal classpath possible, generally just
- the <samp>ant-launcher.jar</samp>.
- </p>
-
- <p id="viaant">
- Ant can be started in Ant via the <code><java></code> command.
- Here is an example:
- </p>
- <pre>
- <java classname="org.apache.tools.ant.launch.Launcher"
- fork="true"
- failonerror="true"
- dir="${sub.builddir}"
- timeout="4000000"
- taskname="startAnt">
- <classpath>
- <pathelement location="${ant.home}/lib/ant-launcher.jar"/>
- </classpath>
- <arg value="-buildfile"/>
- <arg file="${sub.buildfile}"/>
- <arg value="-Dthis=this"/>
- <arg value="-Dthat=that"/>
- <arg value="-Dbasedir=${sub.builddir}"/>
- <arg value="-Dthe.other=the.other"/>
- <arg value="${sub.target}"/>
- </java>
- </pre>
-
- </body>
- </html>
|