<html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>Apache Ant User Manual</title> </head> <body> <h1>Running Ant</h1> <h2><a name="commandline">Command Line</a></h2> <p> If you've installed Ant as described in the <a href="install.html"> Installing Ant</a> section, running Ant from the command-line is simple: just type <code>ant</code>.</p> <p>When no arguments are specified, Ant looks for a <code>build.xml</code> file in the current directory and, if found, uses that file as the buildfile and runs the "default" target. If you use the <code>-find</code> option, Ant will search for a buildfile first in the current directory, then in the parent directory, and so on, until either a buildfile is found or the root of the filesystem has been reached. To make Ant use a buildfile other than <code>build.xml</code>, use the command-line option <code>-buildfile <i>file</i></code>, where <i>file</i> is the name of the buildfile you want to use.</p> <p>You can also set <a href="using.html#properties">properties</a> that override properties specified in the buildfile (see the <a href="CoreTasks/property.html">property</a> task). This can be done with the <nobr><code>-D<i>property</i>=<i>value</i></code></nobr> option, where <i>property</i> is the name of the property, and <i>value</i> is the value for that property. This can also be used to pass in the value of environment variables. Just pass <nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or <nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix) to Ant - you can then access these variables inside your buildfile as <code>${MYVAR}</code>. You can also access environment variables using the <a href="CoreTasks/property.html"> property</a> task. </p> <p>Options that affect the amount of logging output by Ant are: <nobr><code>-quiet</code></nobr>, which instructs Ant to print less information on the console when running; <nobr><code>-verbose</code></nobr>, which causes Ant to print additional information to the console; and <nobr><code>-debug</code></nobr>, which causes Ant to print considerably more additional information. </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 <code>default</code> attribute of the <a href="using.html#projects"><code>project</code></a> tag is used.</p> <p>The <nobr><code>-projecthelp</code></nobr> option prints out a list of the buildfile's targets, along with the text in the <code>description</code> attribute of the target, if one was specified, followed by a list of those targets without one.</p> <h3><a name="options">Command-line Options Summary</a></h3> <pre>ant [options] [target [target2 [target3] ...]] Options: -help print this message -projecthelp print project help information -version print the version information and exit -quiet be extra quiet -verbose be extra verbose -debug print debugging information -emacs produce logging information without adornments -logfile <i>file</i> use given file for log output -logger <i>classname</i> the class that is to perform logging -listener <i>classname</i> add an instance of class as a project listener -buildfile <i>file</i> use specified buildfile -find <i>file</i> search for buildfile towards the root of the filesystem and use the first one found -D<i>property</i>=<i>value</i> set <i>property</i> to <i>value</i> </pre> <p>For more information about <code>-logger</code> and <code>-listener</code> see the section <a href="listeners.html">Loggers & Listeners</a> <h3>Examples</h3> <blockquote> <pre>ant</pre> </blockquote> <p>runs Ant using the <code>build.xml</code> file in the current directory, on the default target.</p> <blockquote> <pre>ant -buildfile test.xml</pre> </blockquote> <p>runs Ant using the <code>test.xml</code> file in the current directory, on the default target.</p> <blockquote> <pre>ant -buildfile test.xml dist</pre> </blockquote> <p>runs Ant using the <code>test.xml</code> file in the current directory, on a target called <code>dist</code>.</p> <blockquote> <pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre> </blockquote> <p>runs Ant using the <code>test.xml</code> file in the current directory, on a target called <code>dist</code>, setting the <code>build</code> property to the value <code>build/classes</code>.</p> <h3><a name="files">Files</a></h3> <p>The Ant wrapper script for Unix will source (read and evaluate) the file <code>~/.antrc</code> before it does anything - the Windows batch file invokes <code>%HOME%\antrc_pre.bat</code> at the start and <code>%HOME%\antrc_post.bat</code> at the end. You can use these files to set/unset environment variables that should only be visible during the execution of Ant. See the next section for example.</p> <h3><a name="envvars">Environment Variables</a></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 <code>JAVA_HOME/bin/java(.exe)</code>.</li> <li><code>ANT_OPTS</code> - command-line arguments that should be passed to the JVM. For example, you can define 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 and to include the <code>-find</code> flag.</li> </ul> <h2><a name="viajava">Running Ant via Java</a></h2> <p>If you have installed Ant in the do-it-yourself way, Ant can be started with:</p> <blockquote> <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre> </blockquote> <p>These instructions actually do exactly the same as the <code>ant</code> command. The options and target are the same as when running Ant with the <code>ant</code> command. This example assumes you have set your classpath to include:</p> <ul> <li><code>ant.jar</code></li> <li>jars/classes for your XML parser</li> <li>the JDK's required jar/zip files</li> </ul> <br> <hr> <p align="center">Copyright © 2000,2001 Apache Software Foundation. All rights Reserved.</p> </body> </html>