Browse Source

Updated the manual to contain info on the pattern based directory scanning.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267586 13f79535-47bb-0310-9956-ffa450edef68
master
Arnout J. Kuiper 25 years ago
parent
commit
ea918a10c8
1 changed files with 414 additions and 145 deletions
  1. +414
    -145
      docs/index.html

+ 414
- 145
docs/index.html View File

@@ -10,13 +10,13 @@
<body> <body>


<h1>Ant User Manual</h1> <h1>Ant User Manual</h1>
<p>by&nbsp;</p>
<p>by</p>
<ul> <ul>
<li>James Duncan Davison <a href="mailto:(duncan@x180.com">(duncan@x180.com</a>)</li>
<li>Arnout J. Kuiper <a href="mailto:(ajkuiper@wxs.nl">(ajkuiper@wxs.nl</a>)</li>
<li>Stefano Mazzocchi <a href="mailto:(stefano@apache.org">(stefano@apache.org</a>)</li>
<li>Arnout J. Kuiper (<a href="mailto:(ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
<li>James Duncan Davison (<a href="mailto:(duncan@x180.com">duncan@x180.com</a>)</li>
<li>Stefano Mazzocchi (<a href="mailto:(stefano@apache.org">stefano@apache.org</a>)</li>
</ul> </ul>
<p>Version 1.0.2 - 2000/01/26</p>
<p>Version 1.0.3 - 2000/02/06</p>
<hr> <hr>
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<ul> <ul>
@@ -26,6 +26,7 @@
<li><a href="#installing">Installing Ant</a></li> <li><a href="#installing">Installing Ant</a></li>
<li><a href="#running">Running Ant</a></li> <li><a href="#running">Running Ant</a></li>
<li><a href="#buildfile">Writing a simple buildfile</a> <li><a href="#buildfile">Writing a simple buildfile</a>
<li><a href="#directorybasedtasks">Directory based tasks</a></li>
<li><a href="#tasks">Built in Tasks</a> <li><a href="#tasks">Built in Tasks</a>
<li><a href="#writingowntask">Writing your own task</a></li> <li><a href="#writingowntask">Writing your own task</a></li>
<li><a href="#license">License</a></li> <li><a href="#license">License</a></li>
@@ -82,11 +83,11 @@ build Ant from the source code.</p>
to build a bootstrap version of Ant.</p> to build a bootstrap version of Ant.</p>
<p>When finished, use</p> <p>When finished, use</p>
<blockquote> <blockquote>
<p><code>build.bat -Ddist.dir=&lt;directory to install Ant&gt; dist</code></p>
<p><code>build.bat -Ddist.dir=&lt;directory to install Ant&gt; dist</code></p>
</blockquote> </blockquote>
<p>for Windows, and</p> <p>for Windows, and</p>
<blockquote> <blockquote>
<p><code>build.sh -Ddist.dir=&lt;directory to install Ant&gt; dist</code></p>
<p><code>build.sh -Ddist.dir=&lt;directory to install Ant&gt; dist</code></p>
</blockquote> </blockquote>
<p>for UNIX, to create a binary distribution of Ant. This distribution can be <p>for UNIX, to create a binary distribution of Ant. This distribution can be
found in the directory you specified.</p> found in the directory you specified.</p>
@@ -156,22 +157,22 @@ Options:
-D&lt;property&gt;=&lt;value&gt; use value for given property</pre> -D&lt;property&gt;=&lt;value&gt; use value for given property</pre>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>ant</pre>
<pre>ant</pre>
</blockquote> </blockquote>
<p>runs Ant using the <code>build.xml</code> file in the current directory, on <p>runs Ant using the <code>build.xml</code> file in the current directory, on
the default target.</p> the default target.</p>
<blockquote> <blockquote>
<pre>ant -buildfile test.xml</pre>
<pre>ant -buildfile test.xml</pre>
</blockquote> </blockquote>
<p>runs Ant using the <code>test.xml</code> file in the current directory, on <p>runs Ant using the <code>test.xml</code> file in the current directory, on
the default target.</p> the default target.</p>
<blockquote> <blockquote>
<pre>ant -buildfile test.xml dist</pre>
<pre>ant -buildfile test.xml dist</pre>
</blockquote> </blockquote>
<p>runs Ant using the <code>test.xml</code> file in the current directory, on a <p>runs Ant using the <code>test.xml</code> file in the current directory, on a
target called <code>dist</code>.</p> target called <code>dist</code>.</p>
<blockquote> <blockquote>
<pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
<pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
</blockquote> </blockquote>
<p>runs Ant using the <code>test.xml</code> file in the current directory, on a <p>runs Ant using the <code>test.xml</code> file in the current directory, on a
target called <code>dist</code>. It also sets the <i>build</i> property to the target called <code>dist</code>. It also sets the <i>build</i> property to the
@@ -180,7 +181,7 @@ value <i>build/classes</i>.</p>
<p>When you have installed Ant in the do-it-yourself way, Ant can be started <p>When you have installed Ant in the do-it-yourself way, Ant can be started
with:</p> with:</p>
<blockquote> <blockquote>
<pre>set CLASSPATH=c:\ant\lib\ant.jar;c:\ant\lib\xml.jar;c:\jdk1.2.2\lib\tools.jar
<pre>set CLASSPATH=c:\ant\lib\ant.jar;c:\ant\lib\xml.jar;c:\jdk1.2.2\lib\tools.jar
java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre> java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
</blockquote> </blockquote>
<p>These instructions actually do exactly the same as the <code>ant</code> <p>These instructions actually do exactly the same as the <code>ant</code>
@@ -264,7 +265,7 @@ of an attribute might contain references to a property. These references will be
resolved before the task is executed.</p> resolved before the task is executed.</p>
<p>Tasks have a common structure:</p> <p>Tasks have a common structure:</p>
<blockquote> <blockquote>
<pre>&lt;name attribute1=&quot;value1&quot; attribute2=&quot;value2&quot; ... /&gt;</pre>
<pre>&lt;name attribute1=&quot;value1&quot; attribute2=&quot;value2&quot; ... /&gt;</pre>
</blockquote> </blockquote>
<p>where name is the name of the task, attribute-x the attribute name, and <p>where name is the name of the task, attribute-x the attribute name, and
value-x the value of this attribute.</p> value-x the value of this attribute.</p>
@@ -281,7 +282,7 @@ task attributes. This is done by placing the property name between
This is resolved as &quot;build/classes&quot;.</p> This is resolved as &quot;build/classes&quot;.</p>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;project name=&quot;foo&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
<pre>&lt;project name=&quot;foo&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
&lt;target name=&quot;init&quot;&gt; &lt;target name=&quot;init&quot;&gt;
&lt;tstamp/&gt; &lt;tstamp/&gt;
&lt;property name=&quot;build&quot; value=&quot;build&quot; /&gt; &lt;property name=&quot;build&quot; value=&quot;build&quot; /&gt;
@@ -310,6 +311,95 @@ This is resolved as &quot;build/classes&quot;.</p>
</pre> </pre>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="directorybasedtasks">Directory based tasks</a></h2>
<p>Some tasks use directory trees for the task they perform. For instance, the <a
href="#javac">Javac task</a> which works upon a directory tree with .java files.
Sometimes it can be very useful to work on a subset of that directory tree. This
section describes how you can select a subset of such a directory tree.</p>
<p>Ant gives you two ways to create a subset, which both can be used at the same
time:</p>
<ul>
<li>Only include files/directories that match at least one pattern of a set of
patterns</li>
<li>Exclude files/directories that match at least one pattern a set of
patterns</li>
</ul>
<p>When both inclusion and exclusion are used, only files/directories that match
the include patterns, and don't match the exclude patterns are used.</p>
<h3>Patterns</h3>
<p>As described earlier, patterns are used for the inclusion and exclusion.
These patterns look very much like the patterns used in DOS and UNIX:</p>
<p>'*' matches zero or more characters, '?' matches one character.</p>
<p>Examples:</p>
<p>'*.java' matches '.java', 'x.java' and 'FooBar.java', but not 'FooBar.xml'
(does not end with '.java').</p>
<p>'?.java' matches 'x.java', 'A.java', but not '.java' or 'xyz.java' (both
don't have one character before '.java').</p>
<p>Combinations of '*'s and '?'s are allowed.</p>
<p>Matching is done per-directory. This means that first the first directory in
the pattern is matched against the first directory in the path to match. Then
the second directories are matched, and so on. E.g. when we have the pattern '/?abc/*/*.java'
and the path '/xabc/foobar/test.java', then first '?abc' is matched with 'xabc',
then '*' is matched with 'foobar' and finally '*.java' is matched with 'test.java'.
They all match so the path matches the pattern.</p>
<p>Too make things a bit more flexible, we add one extra feature, which makes it
possible to match multiple directory levels. This can be used to match a
complete directory tree, or a file anywhere in the directory tree. To do this, '**'
must be used as the name of a directory. When '**' is used as the name of a
directory in the pattern, it matches zero or more directories. For instance:
'/test/**' matches all files/directories under '/test/', such as '/test/x.java',
or '/test/foo/bar/xyz.html', but not '/xyz.xml'.</p>
<p>There is one &quot;shorthand&quot;, if a pattern ends with '/' or '\', then '**'
is appended. E.g. &quot;mypackage/test/&quot; is interpreted as were it &quot;mypackage/test/**&quot;.</p>
<p>Examples:</p>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top">**/CVS/*</td>
<td valign="top">Matches all files in CVS directories, that can be located
anywhere in the directory tree.
<p>Matches:</p>
<p>CVS/Repository<br>
org/apache/CVS/Entries<br>
org/apache/jakarta/tools/ant/CVS/Entries</p>
<p>But not:</p>
<p>org/apache/CVS/foo/bar/Entries ('foo/bar/' part does not match)</td>
</tr>
<tr>
<td valign="top">org/apache/jakarta/**</td>
<td valign="top">Matches all files in the org/apache/jakarta directory tree.
<p>Matches:</p>
<p>org/apache/jakarta/tools/ant/docs/index.html<br>
org/apache/jakarta/test.xml</p>
<p>But not:</p>
<p>org/apache/xyz.java ('jakarta'/' part is missing)</td>
</tr>
<tr>
<td valign="top">org/apache/**/CVS/*</td>
<td valign="top">Matches all files in CVS directories, that are located
anywhere in the directory tree under org/apache.
<p>Matches:</p>
<p>org/apache/CVS/Entries<br>
org/apache/jakarta/tools/ant/CVS/Entries</p>
<p>But not:</p>
<p>org/apache/CVS/foo/bar/Entries ('foo/bar/' part does not match)</td>
</tr>
<tr>
<td valign="top">**/test/**</td>
<td valign="top">Matches all files which have a directory 'test' in their
path, including 'test' as a filename.</td>
</tr>
</table>
<p>When these patterns are used in inclusion and exclusion, you have a powerful
way to select just the files you want.</p>
<h3>Examples</h3>
<pre> &lt;copydir srcdir=&quot;${src}&quot;
destdir=&quot;${dist}&quot;
includes=&quot;**/images/*&quot;
excludes=&quot;**/*.gif&quot; /&gt;</pre>
<p>This copies all files in directories called &quot;images&quot;, that are
located in the directory tree &quot;${src}&quot; to the destination &quot;${dist}&quot;,
but excludes all &quot;*.gif&quot; files from the copy.</p>
<hr>
<h2><a name="tasks">Built in tasks</a></h2> <h2><a name="tasks">Built in tasks</a></h2>
<ul> <ul>
<li><a href="#ant">Ant</a></li> <li><a href="#ant">Ant</a></li>
@@ -373,9 +463,9 @@ These properties will override the properties that are set in the new project.
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;ant antfile=&quot;subproject/subbuild.xml&quot; dir=&quot;subproject&quot;
target=&quot;compile&quot; /&gt;</code></p>
<p><code>&lt;ant dir=&quot;subproject&quot; /&gt;</code></p>
<p><code>&lt;ant antfile=&quot;subproject/subbuild.xml&quot; dir=&quot;subproject&quot;
target=&quot;compile&quot; /&gt;</code></p>
<p><code>&lt;ant dir=&quot;subproject&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="chmod">Chmod</a></h2> <h2><a name="chmod">Chmod</a></h2>
@@ -402,8 +492,8 @@ The permissions are also UNIX style, like the argument for the chmod command.</p
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;chmod src=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;
/&gt;</code></p>
<p><code>&lt;chmod src=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a <p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
UNIX system.</p> UNIX system.</p>
@@ -411,11 +501,20 @@ UNIX system.</p>
<h2><a name="copydir">Copydir</a></h2> <h2><a name="copydir">Copydir</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Copies a directory tree from the source to the destination.</p> <p>Copies a directory tree from the source to the destination.</p>
<p>It is possible to exclude a set of files from the files that are being
copied. This can be done with the <i>ignore</i> attribute. This attribute
contains the names of the files/directories that must be excluded from the copy.
The names specified in the <i>ignore</i> attribute are just names, they do not
contain any path information!</p>
<p>It is possible to refine the set of files that are being copied. This can be
done with the <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i>
attributes. With the <i>includes</i> attribute you specify the files you want to
have included by using patterns. The <i>exclude</i> attribute is used to specify
the files you want to have excluded. This is also done with patterns. And
finally with the <i>defaultexcludes</i> attribute, you can specify whether you
want to use default exclusions or not. See the section on <a
href="#directorybasedtasks">directory based tasks</a>, on how the
inclusion/exclusion of files works, and how to write patterns. The patterns are
relative to the <i>src</i> directory.</p>
<p>The <i>ignore</i> attribute contains the names of the files/directories that
must be excluded from the copy. The names specified in the <i>ignore</i>
attribute are just names, they do not contain any path information! Note that
this attribute has been replaced by the <i>excludes</i> attribute.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -435,24 +534,49 @@ contain any path information!</p>
</tr> </tr>
<tr> <tr>
<td valign="top">ignore</td> <td valign="top">ignore</td>
<td valign="top">comma separated list of filenames/directorynames to ignore.</td>
<td valign="top">comma separated list of filenames/directorynames to ignore.
No files (except default excludes) are excluded when omitted. (<b>deprecated</b>,
use <i>excludes</i> instead).</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">includes</td>
<td valign="top">comma separated list of patterns of files that must be
included. All files are included when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">excludes</td>
<td valign="top">comma separated list of patterns of files that must be
excluded. No files (except default excludes) are excluded when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">defaultexcludes</td>
<td valign="top">indicates whether default excludes should be used or not
(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote>
<p><code>&lt;copydir src=&quot;${src}/resources&quot; dest=&quot;${dist}&quot;
/&gt;</code></p>
</blockquote>
<pre> &lt;copydir src=&quot;${src}/resources&quot;
dest=&quot;${dist}&quot;
/&gt;</pre>
<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p> <p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p>
<blockquote>
<p><code>&lt;copydir src=&quot;${src}/resources&quot; dest=&quot;${dist}&quot;
ignore=&quot;old, Test.java&quot; /&gt;</code></p>
</blockquote>
<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.
All files/directories with the names <code>old</code> and <code>Test.java</code>
are excluded from the copy. When <code>old</code> or <code>Test.java</code> is
the name of a directory, then that whole directory is excluded from the copy.</p>
<pre> &lt;copydir src=&quot;${src}/resources&quot;
dest=&quot;${dist}&quot;
includes=&quot;**/*.java&quot;
excludes=&quot;**/Test.java&quot;
/&gt;</pre>
<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
recursively. All java files are copied, except for files with the name <code>Test.java</code>.</p>
<pre> &lt;copydir src=&quot;${src}/resources&quot;
dest=&quot;${dist}&quot;
includes=&quot;**/*.java&quot;
excludes=&quot;mypackage/test/**&quot; /&gt;</pre>
<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
recursively. All java files are copied, except for the files under the <code>mypackage/test</code>
directory.</p>
<hr> <hr>
<h2><a name="copyfile">Copyfile</a></h2> <h2><a name="copyfile">Copyfile</a></h2>
<h3>Description</h3> <h3>Description</h3>
@@ -479,10 +603,10 @@ does not exist.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;
/&gt;</code></p>
<p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;
/&gt;</code></p>
<p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;
/&gt;</code></p>
<p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="cvs">Cvs</a></h2> <h2><a name="cvs">Cvs</a></h2>
@@ -521,8 +645,8 @@ preferred, because of speed.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;cvs cvsRoot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
package=&quot;jakarta-tools&quot; dest=&quot;${ws.dir}&quot; /&gt;</code></p>
<p><code>&lt;cvs cvsRoot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
package=&quot;jakarta-tools&quot; dest=&quot;${ws.dir}&quot; /&gt;</code></p>
</blockquote> </blockquote>
<p>This checks out the package/module &quot;jakarta-tools&quot; from the CVS <p>This checks out the package/module &quot;jakarta-tools&quot; from the CVS
repository pointed to by the cvsRoot attribute, and stores the files in &quot;${ws.dir}&quot;.</p> repository pointed to by the cvsRoot attribute, and stores the files in &quot;${ws.dir}&quot;.</p>
@@ -545,8 +669,8 @@ repository pointed to by the cvsRoot attribute, and stores the files in &quot;${
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;delete file=&quot;/lib/ant.jar&quot; /&gt;</code></p>
<p><code>&lt;delete file=&quot;${ant}&quot; /&gt;</code></p>
<p><code>&lt;delete file=&quot;/lib/ant.jar&quot; /&gt;</code></p>
<p><code>&lt;delete file=&quot;${ant}&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="deltree">Deltree</a></h2> <h2><a name="deltree">Deltree</a></h2>
@@ -567,8 +691,8 @@ repository pointed to by the cvsRoot attribute, and stores the files in &quot;${
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;deltree dir=&quot;dist&quot; /&gt;</code></p>
<p><code>&lt;deltree dir=&quot;${dist}&quot; /&gt;</code></p>
<p><code>&lt;deltree dir=&quot;dist&quot; /&gt;</code></p>
<p><code>&lt;deltree dir=&quot;${dist}&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="echo">Echo</a></h2> <h2><a name="echo">Echo</a></h2>
@@ -589,7 +713,7 @@ repository pointed to by the cvsRoot attribute, and stores the files in &quot;${
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;echo message=&quot;Hello world&quot; /&gt;</code></p>
<p><code>&lt;echo message=&quot;Hello world&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="exec">Exec</a></h2> <h2><a name="exec">Exec</a></h2>
@@ -629,8 +753,8 @@ systems.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;exec dir=&quot;${src}&quot; command=&quot;dir&quot; os=&quot;windows&quot;
output=&quot;dir.txt&quot; /&gt;</code></p>
<p><code>&lt;exec dir=&quot;${src}&quot; command=&quot;dir&quot; os=&quot;windows&quot;
output=&quot;dir.txt&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="expand">Expand</a></h2> <h2><a name="expand">Expand</a></h2>
@@ -656,8 +780,8 @@ output=&quot;dir.txt&quot; /&gt;</code></p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;expand src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;
/&gt;</code></p>
<p><code>&lt;expand src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="get">Get</a></h2> <h2><a name="get">Get</a></h2>
@@ -692,8 +816,8 @@ archive with http/ftp.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;
/&gt;</code></p>
<p><code>&lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="gzip">GZip</a></h2> <h2><a name="gzip">GZip</a></h2>
@@ -719,15 +843,29 @@ archive with http/ftp.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;gzip src=&quot;test.tar&quot; zipfile=&quot;test.tar.gz&quot; /&gt;</code></p>
<p><code>&lt;gzip src=&quot;test.tar&quot; zipfile=&quot;test.tar.gz&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="jar">Jar</a></h2> <h2><a name="jar">Jar</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Jars a set of files.</p> <p>Jars a set of files.</p>
<p>The <i>basedir</i> attribute is the reference directory from where to jar.</p> <p>The <i>basedir</i> attribute is the reference directory from where to jar.</p>
<p>When &quot;*&quot; is used for items, all files in the basedir, and its
subdirectories, will be jarred. Otherwise all the files and directories
<p>It is possible to refine the set of files that are being jarred. This can be
done with the <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i>
attributes. With the <i>includes</i> attribute you specify the files you want to
have included by using patterns. The <i>exclude</i> attribute is used to specify
the files you want to have excluded. This is also done with patterns. And
finally with the <i>defaultexcludes</i> attribute, you can specify whether you
want to use default exclusions or not. See the section on <a
href="#directorybasedtasks">directory based tasks</a>, on how the
inclusion/exclusion of files works, and how to write patterns. The patterns are
relative to the <i>basedir</i> directory.</p>
<p>The <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i> attributes
replace the <i>items</i> and <i>ignore</i> attributes. The following explains
how the deprecated <i>items</i> and <i>ignore</i> attribute behave.</p>
<p>When &quot;*&quot; is used for <i>items</i>, all files in the basedir, and
its subdirectories, will be jarred. Otherwise all the files and directories
mentioned in the items list will jarred. When a directory is specified, then all mentioned in the items list will jarred. When a directory is specified, then all
files within it are also jarred.</p> files within it are also jarred.</p>
<p>With the <i>ignore</i> attribute, you can specify files or directories to <p>With the <i>ignore</i> attribute, you can specify files or directories to
@@ -753,13 +891,34 @@ attribute are just names, they do not contain any path information!</p>
</tr> </tr>
<tr> <tr>
<td valign="top">items</td> <td valign="top">items</td>
<td valign="top">a comma separated list of the files/directories to jar.</td>
<td valign="top" align="center">Yes</td>
<td valign="top">a comma separated list of the files/directories to jar. All
files are included when omitted. (<b>deprecated</b>, use <i>includes</i>
instead).</td>
<td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
<td valign="top">ignore</td> <td valign="top">ignore</td>
<td valign="top">a comma separated list of the filenames/directorynames to
exclude from the jar.</td>
<td valign="top">comma separated list of filenames/directorynames to exclude
from the jar. No files (except default excludes) are excluded when
omitted. (<b>deprecated</b>, use <i>excludes</i> instead).</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">includes</td>
<td valign="top">comma separated list of patterns of files that must be
included. All files are included when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">excludes</td>
<td valign="top">comma separated list of patterns of files that must be
excluded. No files (except default excludes) are excluded when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">defaultexcludes</td>
<td valign="top">indicates whether default excludes should be used or not
(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
@@ -769,16 +928,30 @@ attribute are just names, they do not contain any path information!</p>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote>
<p><code>&lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;
items=&quot;*&quot; /&gt;</code></p>
</blockquote>
<pre> &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot; /&gt;</pre>
<p>jars all files in the <code>${build}/classes</code> directory in a file <p>jars all files in the <code>${build}/classes</code> directory in a file
called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p> called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
<blockquote>
<p><code>&lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;
items=&quot;*&quot; ignore=&quot;Test.class&quot; /&gt;</code></p>
</blockquote>
<pre> &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot;
basedir=&quot;${build}/classes&quot;
excludes=&quot;**/Test.class&quot;
/&gt;</pre>
<p>jars all files in the <code>${build}/classes</code> directory in a file
called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Files
with the name <code>Test.class</code> are excluded.</p>
<pre> &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot;
basedir=&quot;${build}/classes&quot;
includes=&quot;mypackage/test/**&quot;
excludes=&quot;**/Test.class&quot;
/&gt;</pre>
<p>jars all files in the <code>${build}/classes</code> directory in a file
called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Only
files under the directory <code>mypackage/test</code> are used, and files with
the name <code>Test.class</code> are excluded.</p>
<h3>Deprecated examples</h3>
<pre> &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot; items=&quot;*&quot; /&gt;</pre>
<p>jars all files in the <code>${build}/classes</code> directory in a file
called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
<pre> &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot; items=&quot;*&quot; ignore=&quot;Test.class&quot; /&gt;</pre>
<p>jars all files in the <code>${build}/classes</code> directory in a file <p>jars all files in the <code>${build}/classes</code> directory in a file
called <code>app.jar</code> in the <code>${dist}/lib</code> directory. called <code>app.jar</code> in the <code>${dist}/lib</code> directory.
Files/directories with the name <code>Test.class</code> are excluded.</p> Files/directories with the name <code>Test.class</code> are excluded.</p>
@@ -823,11 +996,11 @@ the one that is currently running Ant.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;java class=&quot;test.Main&quot; /&gt;</code></p>
<p><code>&lt;java class=&quot;test.Main&quot; args=&quot;-h&quot; /&gt;</code></p>
<p><code>&lt;java class=&quot;test.Main&quot; args=&quot;-h&quot;
fork=&quot;yes&quot; jvmargs=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;
/&gt;</code></p>
<p><code>&lt;java class=&quot;test.Main&quot; /&gt;</code></p>
<p><code>&lt;java class=&quot;test.Main&quot; args=&quot;-h&quot; /&gt;</code></p>
<p><code>&lt;java class=&quot;test.Main&quot; args=&quot;-h&quot;
fork=&quot;yes&quot; jvmargs=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="javac">Javac</a></h2> <h2><a name="javac">Javac</a></h2>
@@ -841,6 +1014,16 @@ destination directory, allowing support files to be located properly in the
classpath.</p> classpath.</p>
<p>The directory structure of the source tree should follow the package <p>The directory structure of the source tree should follow the package
hierarchy.</p> hierarchy.</p>
<p>It is possible to refine the set of files that are being compiled/copied.
This can be done with the <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i>
attributes. With the <i>includes</i> attribute you specify the files you want to
have included by using patterns. The <i>exclude</i> attribute is used to specify
the files you want to have excluded. This is also done with patterns. And
finally with the <i>defaultexcludes</i> attribute, you can specify whether you
want to use default exclusions or not. See the section on <a
href="#directorybasedtasks">directory based tasks</a>, on how the
inclusion/exclusion of files works, and how to write patterns. The patterns are
relative to the <i>srcdir</i> directory.</p>
<p>It is possible to use different compilers. This can be selected with the <p>It is possible to use different compilers. This can be selected with the
&quot;build.compiler&quot; property. There are three choices:</p> &quot;build.compiler&quot; property. There are three choices:</p>
<ul> <ul>
@@ -868,6 +1051,24 @@ hierarchy.</p>
<td valign="top">location where to store the class files.</td> <td valign="top">location where to store the class files.</td>
<td align="center" valign="top">Yes</td> <td align="center" valign="top">Yes</td>
</tr> </tr>
<tr>
<td valign="top">includes</td>
<td valign="top">comma separated list of patterns of files that must be
included. All files are included when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">excludes</td>
<td valign="top">comma separated list of patterns of files that must be
excluded. No files (except default excludes) are excluded when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">defaultexcludes</td>
<td valign="top">indicates whether default excludes should be used or not
(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr> <tr>
<td valign="top">classpath</td> <td valign="top">classpath</td>
<td valign="top">the classpath to use.</td> <td valign="top">the classpath to use.</td>
@@ -903,20 +1104,39 @@ hierarchy.</p>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote>
<p><code>&lt;javac srcdir=&quot;${src}&quot; destdir=&quot;${build}&quot; -classpath=&quot;xyz.jar&quot;
-debug=&quot;on&quot; /&gt;</code></p>
</blockquote>
<pre> &lt;javac srcdir=&quot;${src}&quot;
destdir=&quot;${build}&quot;
classpath=&quot;xyz.jar&quot;
debug=&quot;on&quot;
/&gt;</pre>
<p>compiles all .java files under the directory <code>${src}</code>, and stores
the .class files in the directory <code>${build}</code>. It also copies the non-java
files from the tree under <code>${src}</code> to the tree under <code>${build}</code>.
The classpath used contains <code>xyz.jar</code>, and debug information is on.</p>
<pre> &lt;javac srcdir=&quot;${src}&quot;
destdir=&quot;${build}&quot;
includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
excludes=&quot;mypackage/p1/testpackage/**&quot;
classpath=&quot;xyz.jar&quot;
debug=&quot;on&quot;
/&gt;</pre>
<p>compiles .java files under the directory <code>${src}</code>, and stores the
.class files in the directory <code>${build}</code>. It also copies the non-java
files from the tree under <code>${src}</code> to the tree under <code>${build}</code>.
The classpath used contains <code>xyz.jar</code>, and debug information is on.
Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
used. Files in the <code>mypackage/p1/testpackage</code> directory are excluded
form compilation and copy.</p>
<hr> <hr>
<h2><a name="javadoc">Javadoc/Javadoc2</a></h2> <h2><a name="javadoc">Javadoc/Javadoc2</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Generates code documentation using the javadoc tool.</p> <p>Generates code documentation using the javadoc tool.</p>
<p>The source directory will be recursively scanned for Java
source files to but only those matching the inclusion rules will be passed to
the javadoc tool. This allows wildcards to be used to choose between package
names, reducing verbosity and management costs over time. This task, however,
has no notion of &quot;changed&quot; files, unlike the <a href="#javac">javac</a>
task, but it's not used so frequently.</p>
<p>The source directory will be recursively scanned for Java source files to but
only those matching the inclusion rules will be passed to the javadoc tool. This
allows wildcards to be used to choose between package names, reducing verbosity
and management costs over time. This task, however, has no notion of
&quot;changed&quot; files, unlike the <a href="#javac">javac</a> task, but it's
not used so frequently.</p>
<p>This task works seamlessly between different javadoc versions (1.1 and 1.2), <p>This task works seamlessly between different javadoc versions (1.1 and 1.2),
with the obvious restriction that the 1.2 attributes will be ignored if run in a with the obvious restriction that the 1.2 attributes will be ignored if run in a
1.1 VM.</p> 1.1 VM.</p>
@@ -968,7 +1188,8 @@ instead.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">Bootclasspath</td> <td valign="top">Bootclasspath</td>
<td valign="top">Override location of class files loaded by the bootstrap class loader</td>
<td valign="top">Override location of class files loaded by the bootstrap
class loader</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
@@ -1052,7 +1273,7 @@ instead.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">Splitindex</td> <td valign="top">Splitindex</td>
<td valign="top"> Split index into one file per letter</td>
<td valign="top">Split index into one file per letter</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
@@ -1064,87 +1285,86 @@ instead.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">Doctitle</td> <td valign="top">Doctitle</td>
<td valign="top"> Include title for the package index(first) page
(html-code)</td>
<td valign="top">Include title for the package index(first) page (html-code)</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Header</td> <td valign="top">Header</td>
<td valign="top"> Include header text for each page (html-code)</td>
<td valign="top">Include header text for each page (html-code)</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">Footer</td> <td valign="top">Footer</td>
<td valign="top"> Include footer text for each page (html-code)</td>
<td valign="top">Include footer text for each page (html-code)</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">bottom</td> <td valign="top">bottom</td>
<td valign="top"> Include bottom text for each page (html-code)</td>
<td valign="top">Include bottom text for each page (html-code)</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">link</td> <td valign="top">link</td>
<td valign="top"> Create links to javadoc output at the given
URL</td>
<td valign="top">Create links to javadoc output at the given URL</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">linkoffline</td> <td valign="top">linkoffline</td>
<td valign="top"> Link to docs at &lt;url&gt; using package list at &lt;url2></td>
<td valign="top">Link to docs at &lt;url&gt; using package list at
&lt;url2&gt;</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">group</td> <td valign="top">group</td>
<td valign="top"> Group specified packages together in overview page</td>
<td valign="top">Group specified packages together in overview page</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">nodeprecated</td> <td valign="top">nodeprecated</td>
<td valign="top"> Do not include @deprecated information</td>
<td valign="top">Do not include @deprecated information</td>
<td align="center" valign="top">all</td> <td align="center" valign="top">all</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">nodeprecatedlist</td> <td valign="top">nodeprecatedlist</td>
<td valign="top"> Do not generate deprecated list</td>
<td valign="top">Do not generate deprecated list</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">notree</td> <td valign="top">notree</td>
<td valign="top"> Do not generate class hierarchy</td>
<td valign="top">Do not generate class hierarchy</td>
<td align="center" valign="top">all</td> <td align="center" valign="top">all</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">noindex</td> <td valign="top">noindex</td>
<td valign="top"> Do not generate index</td>
<td valign="top">Do not generate index</td>
<td align="center" valign="top">all</td> <td align="center" valign="top">all</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">nohelp</td> <td valign="top">nohelp</td>
<td valign="top"> Do not generate help link</td>
<td valign="top">Do not generate help link</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">nonavbar</td> <td valign="top">nonavbar</td>
<td valign="top"> Do not generate navigation bar</td>
<td valign="top">Do not generate navigation bar</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
<tr> <tr>
<td valign="top">serialwarn</td> <td valign="top">serialwarn</td>
<td valign="top"> Generate warning about @serial tag</td>
<td valign="top">Generate warning about @serial tag</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
@@ -1162,7 +1382,8 @@ instead.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">charset</td> <td valign="top">charset</td>
<td valign="top"> Charset for cross-platform viewing of generated documentation</td>
<td valign="top">Charset for cross-platform viewing of generated
documentation</td>
<td align="center" valign="top">1.2</td> <td align="center" valign="top">1.2</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>
@@ -1175,7 +1396,7 @@ instead.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
<pre>&lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
sourcepath=&quot;src&quot; sourcepath=&quot;src&quot;
destdir=&quot;docs/api&quot; destdir=&quot;docs/api&quot;
author=&quot;true&quot; author=&quot;true&quot;
@@ -1228,8 +1449,8 @@ separator, which might we changed with the <i>sep</i> attribute.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;keysubst src=&quot;abc.txt&quot; dest=&quot;def.txt&quot;
keys=&quot;VERSION=1.0.3*DATE=2000-01-10&quot; /&gt;</code></p>
<p><code>&lt;keysubst src=&quot;abc.txt&quot; dest=&quot;def.txt&quot;
keys=&quot;VERSION=1.0.3*DATE=2000-01-10&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="mkdir">Mkdir</a></h2> <h2><a name="mkdir">Mkdir</a></h2>
@@ -1251,8 +1472,8 @@ necessary.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;mkdir dir=&quot;${dist}&quot; /&gt;</code></p>
<p><code>&lt;mkdir dir=&quot;${dist}/lib&quot; /&gt;</code></p>
<p><code>&lt;mkdir dir=&quot;${dist}&quot; /&gt;</code></p>
<p><code>&lt;mkdir dir=&quot;${dist}/lib&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="property">Property</a></h2> <h2><a name="property">Property</a></h2>
@@ -1310,9 +1531,9 @@ This also holds for properties loaded from a property file.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</code></p>
<p><code>&lt;property file=&quot;foo.properties&quot; /&gt;</code></p>
<p><code>&lt;property resource=&quot;foo.properties&quot; /&gt;</code></p>
<p><code>&lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</code></p>
<p><code>&lt;property file=&quot;foo.properties&quot; /&gt;</code></p>
<p><code>&lt;property resource=&quot;foo.properties&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="replace">Replace</a></h2> <h2><a name="replace">Replace</a></h2>
@@ -1344,8 +1565,8 @@ the <i>value</i> attribute is omitted, it defaults to &quot;&quot;.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot;
value=&quot;wombat&quot; /&gt;</code></p>
<p><code>&lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot;
value=&quot;wombat&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="rmic">Rmic</a></h2> <h2><a name="rmic">Rmic</a></h2>
@@ -1371,8 +1592,8 @@ value=&quot;wombat&quot; /&gt;</code></p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;rmic class=&quot;com.xyz.FooBar&quot;
base=&quot;${build}/classes&quot; /&gt;</code></p>
<p><code>&lt;rmic class=&quot;com.xyz.FooBar&quot;
base=&quot;${build}/classes&quot; /&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="taskdef">Taskdef</a></h2> <h2><a name="taskdef">Taskdef</a></h2>
@@ -1403,15 +1624,15 @@ href="#writingowntask">Writing your own task</a>&quot;.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;taskdef name=&quot;myjavadoc&quot; value=&quot;com.mydomain.JavadocTask&quot;
/&gt;</code></p>
<p><code>&lt;taskdef name=&quot;myjavadoc&quot; value=&quot;com.mydomain.JavadocTask&quot;
/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="tstamp">Tstamp</a></h2> <h2><a name="tstamp">Tstamp</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Sets the DSTAMP, TSTAMP and TODAY properties in the current project. The DSTAMP is
in the &quot;yyyymmdd&quot; format, the TSTAMP is in the &quot;hhmm&quot; format
and TODAY is &quot;month day year&quot;.</p>
<p>Sets the DSTAMP, TSTAMP and TODAY properties in the current project. The
DSTAMP is in the &quot;yyyymmdd&quot; format, the TSTAMP is in the &quot;hhmm&quot;
format and TODAY is &quot;month day year&quot;.</p>
<p>These properties can be used in the buildfile, for instance, to create <p>These properties can be used in the buildfile, for instance, to create
timestamped filenames or used to replace placeholder tags inside documents to timestamped filenames or used to replace placeholder tags inside documents to
indicate, for example, the release date. The best place for this task is in the <a indicate, for example, the release date. The best place for this task is in the <a
@@ -1426,22 +1647,34 @@ href="#inittarget">init target</a>.</p>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<p><code>&lt;tstamp/&gt;</code></p>
<p><code>&lt;tstamp/&gt;</code></p>
</blockquote> </blockquote>
<hr> <hr>
<h2><a name="zip">Zip</a></h2> <h2><a name="zip">Zip</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Creates a zipfile.</p> <p>Creates a zipfile.</p>
<p>The <i>basedir</i> attribute is the reference directory from where to zip.</p> <p>The <i>basedir</i> attribute is the reference directory from where to zip.</p>
<p>When &quot;*&quot; is used for items, all files in the basedir, and its
subdirectories, will be zipped. Otherwise all the files and directories
<p>It is possible to refine the set of files that are being zipped. This can be
done with the <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i>
attributes. With the <i>includes</i> attribute you specify the files you want to
have included by using patterns. The <i>exclude</i> attribute is used to specify
the files you want to have excluded. This is also done with patterns. And
finally with the <i>defaultexcludes</i> attribute, you can specify whether you
want to use default exclusions or not. See the section on <a
href="#directorybasedtasks">directory based tasks</a>, on how the
inclusion/exclusion of files works, and how to write patterns. The patterns are
relative to the <i>basedir</i> directory.</p>
<p>The <i>includes</i>, <i>excludes</i> and <i>defaultexcludes</i> attributes
replace the <i>items</i> and <i>ignore</i> attributes. The following explains
how the deprecated <i>items</i> and <i>ignore</i> attribute behave.</p>
<p>When &quot;*&quot; is used for <i>items</i>, all files in the basedir, and
its subdirectories, will be zipped. Otherwise all the files and directories
mentioned in the items list will zipped. When a directory is specified, then all mentioned in the items list will zipped. When a directory is specified, then all
files within it are also zipped.</p> files within it are also zipped.</p>
<p>With the <i>ignore</i> attribute, you can specify names of files or
directories to ignore. These files will not be zipped. The items in the <i>ignore</i>
attribute override the items in the <i>items</i> attribute. The names specified
in the <i>ignore</i> attribute are just names, they do not contain any path
information!</p>
<p>With the <i>ignore</i> attribute, you can specify files or directories to
ignore. These files will not be zipped. The items in the <i>ignore</i> attribute
override the items in the <i>items</i> attribute. The names specified in the <i>ignore</i>
attribute are just names, they do not contain any path information!</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -1461,27 +1694,63 @@ information!</p>
</tr> </tr>
<tr> <tr>
<td valign="top">items</td> <td valign="top">items</td>
<td valign="top">a comma separated list of the files/directories to zip.</td>
<td align="center" valign="top">Yes</td>
<td valign="top">a comma separated list of the files/directories to zip. All
files are included when omitted. (<b>deprecated</b>, use <i>includes</i>
instead).</td>
<td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
<td valign="top">ignore</td> <td valign="top">ignore</td>
<td valign="top">a comma separated list of the filenames/directorynames to
exclude from the zip.</td>
<td align="center" valign="top">No</td>
<td valign="top">comma separated list of filenames/directorynames to exclude
from the zip. No files (except default excludes) are excluded when
omitted. (<b>deprecated</b>, use <i>excludes</i> instead).</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">includes</td>
<td valign="top">comma separated list of patterns of files that must be
included. All files are included when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">excludes</td>
<td valign="top">comma separated list of patterns of files that must be
excluded. No files (except default excludes) are excluded when omitted.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">defaultexcludes</td>
<td valign="top">indicates whether default excludes should be used or not
(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
<td valign="top" align="center">No</td>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote>
<p><code>&lt;zip zipfile=&quot;${dist}/manual.zip&quot; basedir=&quot;htdocs/manual&quot;
items=&quot;*&quot; /&gt;</code></p>
</blockquote>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
basedir=&quot;htdocs/manual&quot;
/&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code> <p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code>
in the <code>${dist}</code> directory.</p> in the <code>${dist}</code> directory.</p>
<blockquote>
<p><code>&lt;zip zipfile=&quot;${dist}/manual.zip&quot; basedir=&quot;htdocs/manual&quot;
items=&quot;*&quot; ignore=&quot;mydocs, todo.html&quot;/&gt;</code></p>
</blockquote>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
basedir=&quot;htdocs/manual&quot;
excludes=&quot;mydocs/**, **/todo.html&quot;
/&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code>
in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
or files with the name <code>todo.html</code> are excluded.</p>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
basedir=&quot;htdocs/manual&quot;
includes=&quot;api/**/*.html&quot;
excludes=&quot;**/todo.html&quot;
/&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code>
in the <code>${dist}</code> directory. Only html files under the directory <code>api</code>
are zipped, and files with the name <code>todo.html</code> are excluded.</p>
<h3>Deprecated examples</h3>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot; basedir=&quot;htdocs/manual&quot; items=&quot;*&quot; /&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code>
in the <code>${dist}</code> directory.</p>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot; basedir=&quot;htdocs/manual&quot; items=&quot;*&quot; ignore=&quot;mydocs, todo.html&quot;/&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code> <p>zips all files in the <code>htdocs/manual</code> directory in a file called <code>manual.zip</code>
in the <code>${dist}</code> directory. Files/directories with the names <code>mydocs</code> in the <code>${dist}</code> directory. Files/directories with the names <code>mydocs</code>
and <code>todo.html</code> are excluded.</p> and <code>todo.html</code> are excluded.</p>
@@ -1504,7 +1773,7 @@ it encounters for a specific task in the buildfile, before it executes is.</p>
<p>Let's write our own task, that prints a message on the System.out stream. The <p>Let's write our own task, that prints a message on the System.out stream. The
task has one attribute called &quot;message&quot;.</p> task has one attribute called &quot;message&quot;.</p>
<blockquote> <blockquote>
<pre>public class MyVeryOwnTask extends Task {
<pre>public class MyVeryOwnTask extends Task {
private String msg; private String msg;


// The method executing the task // The method executing the task
@@ -1529,7 +1798,7 @@ task has one attribute called &quot;message&quot;.</p>
</ol> </ol>
<h3>Example</h3> <h3>Example</h3>
<blockquote> <blockquote>
<pre>&lt;project name=&quot;TaskTest&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
<pre>&lt;project name=&quot;TaskTest&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
&lt;target name=&quot;init&quot;&gt; &lt;target name=&quot;init&quot;&gt;
&lt;taskdef name=&quot;mytask&quot; class=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt; &lt;taskdef name=&quot;mytask&quot; class=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt;
&lt;/target&gt; &lt;/target&gt;
@@ -1548,8 +1817,8 @@ package. Then you can use it as if it were a built in task.</p>
<p>To provide feedback on this software, please subscribe to the Ant Development <p>To provide feedback on this software, please subscribe to the Ant Development
Mail List <a href="mailto:(ant-dev-subscribe@jakarta.apache.org">(ant-dev-subscribe@jakarta.apache.org</a>)</p> Mail List <a href="mailto:(ant-dev-subscribe@jakarta.apache.org">(ant-dev-subscribe@jakarta.apache.org</a>)</p>
<hr> <hr>
<p align="center">Copyright &copy; 2000 Apache Software Foundation. All
rights Reserved.</p>
<p align="center">Copyright © 2000 Apache Software Foundation. All rights
Reserved.</p>


</body> </body>




Loading…
Cancel
Save