| <html> |
| |
| <head> |
| <meta http-equiv="Content-Language" content="en-us"> |
| <title>Ant User Manual</title> |
| </head> |
| |
| <body> |
| |
| <h2><a name="jar">Jar</a></h2> |
| <h3>Description</h3> |
| <p>Jars a set of files.</p> |
| <p>The <i>basedir</i> attribute is the reference directory from where to jar.</p> |
| <p>Note that file permissions will not be stored in the resulting jarfile.</p> |
| <p>It is possible to refine the set of files that are being jarred. This can be |
| done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i> |
| attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to |
| have included by using patterns. The <i>exclude</i> or <i>excludesfile</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="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the |
| inclusion/exclusion of files works, and how to write patterns.</p> |
| <p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and |
| supports all attributes of <code><fileset></code> |
| (<code>dir</code> becomes <code>basedir</code>) as well as the nested |
| <code><include></code>, <code><exclude></code> and |
| <code><patternset></code> elements.</p> |
| <p>You can also use nested file sets for more flexibility, and specify |
| multiple ones to merge together different trees of files into one JAR. |
| The extended fileset attributes from the zip task are also available |
| in the jar task. |
| See the <a href="zip.html">Zip</a> task for more details and examples.</p> |
| <p>If the manifest is omitted, a simple one will be supplied by Ant. |
| You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.</p> |
| <p>The <code>whenempty</code> parameter controls what happens when no files match. |
| If <code>create</code> (the default), the JAR is created anyway with only a manifest. |
| If <code>skip</code>, the JAR is not created and a warning is issued. |
| If <code>fail</code>, the JAR is not created and the build is halted with an error.</p> |
| <p>(The Jar task is a shortcut for specifying the manifest file of a JAR file. |
| The same thing can be accomplished by using the <i>fullpath</i> |
| attribute of a zipfileset in a Zip task. The one difference is that if the |
| <i>manifest</i> attribute is not specified, the Jar task will |
| include an empty one for you.)</p> |
| |
| <h3>Parameters</h3> |
| <table border="1" cellpadding="2" cellspacing="0"> |
| <tr> |
| <td valign="top"><b>Attribute</b></td> |
| <td valign="top"><b>Description</b></td> |
| <td align="center" valign="top"><b>Required</b></td> |
| </tr> |
| <tr> |
| <td valign="top">jarfile</td> |
| <td valign="top">the jar-file to create.</td> |
| <td valign="top" align="center">Yes</td> |
| </tr> |
| <tr> |
| <td valign="top">basedir</td> |
| <td valign="top">the directory from which to jar the files.</td> |
| <td valign="top" align="center">No</td> |
| </tr> |
| <tr> |
| <td valign="top">compress</td> |
| <td valign="top">Not only store data but also compress them, defaults to true</td> |
| <td align="center" valign="top">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">includesfile</td> |
| <td valign="top">the name of a file. Each line of this file is |
| taken to be an include pattern</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">excludesfile</td> |
| <td valign="top">the name of a file. Each line of this file is |
| taken to be an exclude pattern</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 |
| ("yes"/"no"). Default excludes are used when omitted.</td> |
| <td valign="top" align="center">No</td> |
| </tr> |
| <tr> |
| <td valign="top">manifest</td> |
| <td valign="top">the manifest file to use.</td> |
| <td valign="top" align="center">No</td> |
| </tr> |
| <tr> |
| <td valign="top">whenempty</td> |
| <td valign="top">Behavior to use if no files match.</td> |
| <td valign="top" align="center">No</td> |
| </tr> |
| </table> |
| <h3>Examples</h3> |
| <pre> <jar jarfile="${dist}/lib/app.jar" basedir="${build}/classes"/></pre> |
| <p>jars all files in the <code>${build}/classes</code> directory into a file |
| called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p> |
| <pre> <jar jarfile="${dist}/lib/app.jar" |
| basedir="${build}/classes" |
| excludes="**/Test.class" |
| /></pre> |
| <p>jars all files in the <code>${build}/classes</code> directory into 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> <jar jarfile="${dist}/lib/app.jar" |
| basedir="${build}/classes" |
| includes="mypackage/test/**" |
| excludes="**/Test.class" |
| /></pre> |
| <p>jars all files in the <code>${build}/classes</code> directory into 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> |
| <pre> <jar jarfile="${dist}/lib/app.jar"> |
| <fileset dir="${build}/classes" |
| excludes="**/Test.class" |
| /> |
| <fileset dir="${src}/resources"/> |
| </jar></pre> |
| <p>jars all files in the <code>${build}/classes</code> directory and also |
| in the <code>${src}/resources</code> directory together into a file |
| called <code>app.jar</code> in the <code>${dist}/lib</code> directory. |
| Files with the name <code>Test.class</code> are excluded. |
| If there are files such as <code>${build}/classes/mypackage/MyClass.class</code> |
| and <code>${src}/resources/mypackage/image.gif</code>, they will appear |
| in the same directory in the JAR (and thus be considered in the same package |
| by Java).</p> |
| |
| <hr> |
| <p align="center">Copyright © 2000,2001 Apache Software Foundation. All rights |
| Reserved.</p> |
| |
| </body> |
| </html> |
| |