| <!-- |
| 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="style.css"> |
| <title>Unarchiving Task</title> |
| </head> |
| |
| <body> |
| |
| <h2><a name="expand">Unarchiving Tasks</a></h2> |
| |
| <p>For each of the supported archiving formats there is a |
| correspondig <code>unarchiving</code> task. These tasks are based |
| on |
| their <a href="http://ant.apache.org/manual/CoreTasks/unzip.html">core |
| cousin tasks</a>.</p> |
| |
| <p><a href="http://ant.apache.org/manual/CoreTypes/patternset.html">PatternSet</a>s are used to select files to extract |
| <I>from</I> the archive. If no patternset is used, all files are extracted. |
| </p> |
| |
| <p><a href="http://ant.apache.org/manual/CoreTypes/resources.html#collection">Resource |
| Collection</a>s may be used to select archived files to perform |
| unarchival upon.</p> |
| |
| <p>You can define filename transformations by using a |
| nested <a href="http://ant.apache.org/manual/CoreTypes/mapper.html">mapper</a> |
| element. The default mapper is the |
| <a href="http://ant.apache.org/manual/CoreTypes/mapper.html#identity-mapper">identity |
| mapper</a>.</p> |
| |
| <p>File permissions will not be restored on extracted files.</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">src</td> |
| <td valign="top">archive file to expand.</td> |
| <td align="center" valign="top">Yes, if filesets are not used.</td> |
| </tr> |
| <tr> |
| <td valign="top">dest</td> |
| <td valign="top">directory where to store the expanded files.</td> |
| <td align="center" valign="top">Yes</td> |
| </tr> |
| <tr> |
| <td valign="top">overwrite</td> |
| <td valign="top">Overwrite files, even if they are newer than the |
| corresponding entries in the archive (true or false, default is |
| true).</td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| <tr> |
| <td valign="top">failOnEmptyArchive</td> |
| <td valign="top">whether trying to extract an empty archive is an |
| error.</td> |
| <td valign="top" align="center">No, defaults to false</td> |
| </tr> |
| <tr> |
| <td valign="top">stripAbsolutePathSpec</td> |
| <td valign="top">whether Ant should remove leading '/' or '\' |
| characters from the extracted file name before extracing it. |
| Note that this changes the entry's name before applying |
| include/exclude patterns and before using the nested mappers (if |
| any).</td> |
| <td valign="top" align="center">No, defaults to false</td> |
| </tr> |
| <tr> |
| <td valign="top">skipUnreadableEntries</td> |
| <td valign="top">Sometimes archives may contain entries that use |
| features not (yet) supported by Apache Commons Compress, |
| encryption for example. Trying to expand such an archive will |
| normally lead to an error. Sometimes Commons Compress can |
| signal it doesn't know how to handle an entry and if you set |
| <code>skipUnreadableEntries</code> to true, the Compress Antlib |
| will simply skip those entries, avoiding the error. |
| <br/><em>since Compress Antlib 1.1</em></td> |
| <td valign="top" align="center">No, defaults to false</td> |
| </tr> |
| </table> |
| |
| <h3><a name="un7z">Un7z</a></h3> |
| |
| <p><em>Since Apache Compress Antlib 1.3</em>.</p> |
| |
| <p>An <a href="#expand">unarchiving task</a> for 7z archives.</p> |
| |
| <p>As of version 1.3 of the Compress Antlib this task can only work on |
| file based resources.</p> |
| |
| <h3><a name="unar">UnAr</a></h3> |
| |
| <p>An <a href="#expand">unarchiving task</a> for AR archives.</p> |
| |
| <p>Traditionally the AR format doesn't allow file names longer than 16 |
| characters. There are two variants that circumvent this limitation |
| in different ways, the GNU/SRV4 and the BSD variant; both of which |
| are transparently supported since Commons Compress 1.3.</p> |
| |
| <h3><a name="unarj">UnArj</a></h3> |
| |
| <p><em>Since Apache Compress Antlib 1.3</em>.</p> |
| |
| <p>An <a href="#expand">unarchiving task</a> for arj archives.</p> |
| |
| <p>In addition to the parameters above, the unarj tasks supports the |
| following attributes:</p> |
| |
| <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">encoding</td> |
| <td valign="top"> |
| The character encoding that has been used for filenames |
| inside the arj file. For a list of possible values see <a |
| href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> |
| Defaults <code>native-encoding</code> which is the magic value for |
| the platform's default character encoding.<br/> |
| <em>since Compress Antlib 1.3</em></td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| </table> |
| |
| <h3><a name="uncpio">UnCpio</a></h3> |
| |
| <p>An <a href="#expand">unarchiving task</a> for CPIO archives.</p> |
| |
| <p>In addition to the parameters above, the uncpio tasks supports the |
| following attributes:</p> |
| |
| <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">encoding</td> |
| <td valign="top"> |
| The character encoding that has been used for filenames |
| inside the cpio file. For a list of possible values see <a |
| href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> |
| Defaults <code>native-encoding</code> which is the magic value for |
| the platform's default character encoding.<br/> |
| <em>since Compress Antlib 1.3</em></td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| </table> |
| |
| <h3><a name="undump">UnDump</a></h3> |
| |
| <p><em>Since Apache Compress Antlib 1.1</em>.</p> |
| |
| <p>An <a href="#expand">unarchiving task</a> for Unix dump archives.</p> |
| |
| <p>In addition to the parameters above, the undump tasks supports the |
| following attributes:</p> |
| |
| <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">encoding</td> |
| <td valign="top"> |
| The character encoding that has been used for filenames |
| inside the dump file. For a list of possible values see <a |
| href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> |
| Defaults <code>native-encoding</code> which is the magic value for |
| the platform's default character encoding.<br/> |
| <em>since Compress Antlib 1.3</em></td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| </table> |
| |
| <h3><a name="untar">UnTar</a></h3> |
| |
| <p>An <a href="#expand">unarchiving task</a> for TAR archives.</p> |
| |
| <p>In addition to the parameters above, the untar tasks supports the |
| following attributes:</p> |
| |
| <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">encoding</td> |
| <td valign="top"> |
| The character encoding that has been used for filenames |
| inside the tar file. For a list of possible values see <a |
| href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> |
| Defaults <code>native-encoding</code> which is the magic value for |
| the platform's default character encoding.<br/> |
| <em>since Compress Antlib 1.2</em></td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| </table> |
| |
| <h3><a name="unzip">UnZip</a></h3> |
| |
| <p>An <a href="#expand">unarchiving task</a> for ZIP archives.</p> |
| |
| <p><b>Please note</b> that different ZIP tools handle timestamps |
| differently when it comes to applying timezone offset calculations of |
| files. Some ZIP libraries will store the timestamps as they've been |
| read from the filesystem while others will modify the timestamps both |
| when reading and writing the files to make all timestamps use the same |
| timezone. A ZIP archive created by one library may extract files with |
| "wrong timestamps" when extracted by another library.</p> |
| |
| <p>Apache Commons Compress' ZIP classes use the same algorithm as the |
| InfoZIP tools and zlib (timestamps get adjusted), Windows' "compressed |
| folders" function and WinZIP don't change the timestamps. This means |
| that using the unzip task on files created by Windows' compressed |
| folders function may create files with timestamps that are "wrong", |
| the same is true if you use Windows' functions to extract an Ant |
| generated ZIP archive.</p> |
| |
| <p>Unlike its counterpart in Ant's core this Antlib's task can also |
| extract archives that are not file system resources.</p> |
| |
| <p>In addition to the parameters above, the unzip tasks supports the |
| following attributes:</p> |
| |
| <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">encoding</td> |
| <td valign="top"> |
| The character encoding that has been used for filenames |
| inside the zip file. For a list of possible values see <a |
| href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html</a>.<br> |
| Defaults to "UTF8", use the magic value |
| <code>native-encoding</code> for the platform's default character |
| encoding. |
| <br/>See also the <a href="http://ant.apache.org/manual/CoreTasks/zip.html#encoding">discussion in the |
| zip task page</a></td> |
| <td align="center" valign="top">No</td> |
| </tr> |
| <tr> |
| <td valign="top">scanForUnicodeExtraFields</td> |
| <td valign="top"> |
| If the archive contains uncode extra fields then use them to set |
| the file names, ignoring the specified encoding. |
| <br/>See also the <a href="http://ant.apache.org/manual/CoreTasks/zip.html#encoding">discussion in the |
| zip task page</a></td> |
| <td align="center" valign="top">No, defaults to true</td> |
| </tr> |
| </table> |
| |
| <h3>Examples</h3> |
| <pre> |
| <cmp:unzip src="${tomcat_src}/tools-src.zip" |
| dest="${tools.home}" |
| xmlns:cmp="antlib:org.apache.ant.compress"/> |
| </pre> |
| <p> |
| <pre> |
| <cmp:gunzip src="tools.tar.gz" xmlns:cmp="antlib:org.apache.ant.compress"/> |
| <cmp:untar src="tools.tar" dest="${tools.home}" |
| xmlns:cmp="antlib:org.apache.ant.compress"/> |
| </pre> |
| <pre> |
| <cmp:unzip src="${tomcat_src}/tools-src.zip" |
| xmlns:cmp="antlib:org.apache.ant.compress" |
| dest="${tools.home}"> |
| <patternset> |
| <include name="**/*.java"/> |
| <exclude name="**/Test*.java"/> |
| </patternset> |
| </cmp:unzip> |
| </pre> |
| <p> |
| <pre> |
| <cmp:unzip dest="${tools.home} xmlns:cmp="antlib:org.apache.ant.compress""> |
| <patternset> |
| <include name="**/*.java"/> |
| <exclude name="**/Test*.java"/> |
| </patternset> |
| <fileset dir="."> |
| <include name="**/*.zip"/> |
| <exclude name="**/tmp*.zip"/> |
| </fileset> |
| </cmp:unzip> |
| </pre> |
| <p> |
| <pre> |
| <cmp:unzip src="apache-ant-bin.zip" |
| dest="${tools.home}" |
| xmlns:cmp="antlib:org.apache.ant.compress"> |
| <patternset> |
| <include name="apache-ant/lib/ant.jar"/> |
| </patternset> |
| <mapper type="flatten"/> |
| </cmp:unzip> |
| </pre> |
| |
| <pre> |
| <cmp:unzip src="${ant.home}/lib/ant.jar" |
| dest="..." xmlns:cmp="antlib:org.apache.ant.compress"> |
| <patternset> |
| <include name="images/"/> |
| </patternset> |
| </cmp:unzip> |
| </pre> |
| <p>This extracts all images from <tt>ant.jar</tt> which are stored in the <tt>images</tt> directory |
| of the Jar (or somewhere under it). While extracting the directory structure (<tt>images</tt>) |
| will be taken.</p> |
| |
| <pre> |
| <cmp:unzip src="${ant.home}/lib/ant.jar" |
| dest="..." xmlns:cmp="antlib:org.apache.ant.compress"> |
| <patternset> |
| <include name="**/ant_logo_large.gif"/> |
| <include name="**/LICENSE.txt"/> |
| </patternset> |
| </cmp:unzip> |
| </pre> |
| <p>This extracts the two files <tt>ant_logo_large.gif</tt> and <tt>LICENSE.txt</tt> from the |
| <tt>ant.jar</tt>. More exactly: it extracts all files with these names from anywhere in the source file. While extracting the directory structure will be taken.</p> |
| |
| <h3>Related tasks</h3> |
| |
| <pre> |
| <cmp:unzip src="some-archive" dest="some-dir" xmlns:cmp="antlib:org.apache.ant.compress"> |
| <patternset> |
| <include name="some-pattern"/> |
| </patternset> |
| <mapper type="some-mapper"/> |
| </cmp:unzip> |
| </pre> |
| |
| is identical to |
| |
| <pre> |
| <copy todir="some-dir" preservelastmodified="true"> |
| <cmp:zipfileset src="some-archive" xmlns:cmp="antlib:org.apache.ant.compress"> |
| <patternset> |
| <include name="some-pattern"/> |
| </patternset> |
| </cmp:zipfileset> |
| <mapper type="some-mapper"/> |
| </copy> |
| </pre> |
| |
| <p>The same is also true for <code><untar></code> and |
| <code><tarfileset></code>. <code><copy></code> offers |
| additional features |
| like <a href="http://ant.apache.org/manual/CoreTypes/filterchain.html">filtering |
| files</a> on the fly, allowing a file to be mapped to multiple |
| destinations or a configurable file system timestamp granularity.</p> |
| |
| <pre><cmp:zip destfile="new.jar" xmlns:cmp="antlib:org.apache.ant.compress"> |
| <cmp:zipfileset src="old.jar"> |
| <exclude name="do/not/include/this/class"/> |
| </cmp:zipfileset> |
| </cmp:zip> |
| </pre> |
| <p>"Deletes" files from a zipfile.</p> |
| |
| </body> |
| </html> |