ZIPファイルを作成します。
basedir属性はZIPを行うディレクトリです。
ファイルのパーミッションは、生成したZIPファイルには保存されないことに注意してください。
ZIPにするファイルの集合を絞り込むことが可能です。 これには、includes、includesfile、excludes、 excludesfile、defaultexcludes属性を使用します。 includesやincludesfile属性によって、 パターンを使用して包括したいファイルを指定します。 excludeやexcludesfile属性では、 除外したいファイルを指定します。これもまたパターンを使用します。 最後に、defaultexcludes属性によって、 デフォルト除外集合を使うかどうかを指定できます。 ファイルの包括/除外の処理方法や、パターンを記述する方法については、 ディレクトリベースのタスク の節を参照してください。
このタスクは暗黙のファイルセットを作成して、
ネストした<include>、<exclude>、
<patternset>要素のように、
<fileset>のすべての属性
(dirはbasedirになります)
をサポートします。
または、ネストしたファイルセットか、ファイルセットへの参照を指定することができます。
この場合には、basedirは省略可能ですが、
暗黙のファイルセットはbasedirを指定した場合だけ使用されます。
暗黙のファイルセットを混在して使うことができます。
(basedirを設定し、
includesや<include>
のような付加的な副要素を追加します)。
少なくともひとつのfilesetを指定して、
ネストした<fileset>要素を明示してください。
ZIPファイルはそれぞれのfilesetの中の相対パスだけを反映します。
ZIPタスクとその派生タスクは、
zipfilesetという追加属性(以下に記述されています)の
特別なファイルセットを使用できます。
ZIPタスクはまた、複数のZIPファイルからひとつのZIPファイルへの マージをサポートしています。 これは、ネストしたファイルセットのsrc属性と 特別なネストしたファイルセットzipgroupfileset を使うことで可能です。
ZIPファイルが既に存在した場合、
updateパラメータが適用されます。
yesがセットされた場合、
ZIPファイルは指定したファイルで更新されます
(新しいファイルが追加され、古いファイルは新しいバージョンに置き換えられます)。
no(デフォルト)がセットされた場合、アーカイブ内のエントリよりもより新しい
ファイルがアーカイブに追加されたならば、ZIPファイルは上書きされます。
ZIPファイルは2秒の粒度で保存しますので注意してください。アーカイブ内のエントリよりも
2秒に満たない新しさのとき、Antはそれが最新でないと判断します。
whenemptyパラメータは、マッチするファイルがない時にどうするかを制御します。
skip(デフォルト)の場合には、ZIPファイルを作成せずに、警告を出力します。
failの場合には、ZIPファイルを作成せずに、ビルドがエラーで停止します。
createの場合には、ZIP互換の処理ツールに空だと認識されるZIPファイル(明示的に0エントリ)を作成します。
このタスクは現在、ファイル名にプラットホームのデフォルト文字エンコーディングを使います。 これはコマンドラインのZIPツールと同じやり方ですが、 Javaから、US-ASCIIでない文字コードを含むファイル名を 読み込もうとすると問題が発生します。 Javaで安全にZIPファイルを読み込めるように、 encoding属性を使用して、属性にUTF8にセットしてZIPファイルを作成してくだしい。
Ant 1.5.2から、<zip>はアーカイブ内にUnix パーミッションを保存できます (filemodeとdirmode属性の記述を参照 <zipfileset>)。 残念ながら、それらのパーミッションを携帯する方法はありません。 Antは、zipやunzipコマンドを実装したInfo-Zip'sで利用されているアルゴリズムを使っています。-多くのUnixやUnixライクなシステム向きの、zipやunzipのデフォルトバージョンです。-
| 属性 | 説明 | 必須 |
| destfile | 作成するZIPファイル。 | 必ず2つのうち1つ |
| zipfile | 推奨されません。 destfileの古い名前。 | |
| basedir | ファイルをZIPするディレクトリ | No |
| compress | デフォルトのtrueにすると、データを保存するだけでなく圧縮します。 keepcompression属性がfalseに設定されていない限り、 追加したファイルだけでなくアーカイブ全体を更新時に適用します。 | No |
| keepcompression | 既存アーカイブからのエントリ(ネストされた zipfilesets や 更新中のアーカイブ)が、 compress 属性を使っていないならば圧縮状態を保持する。 デフォルトは false。 Ant 1.6 から | No |
| encoding | ZIPファイル内のファイル名に使われる文字エンコーディング。 使用できる値のリストは http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.htmlを見てください。 デフォルトはプラットホームのデフォルト文字エンコーディング。 | No |
| filesonly | ファイルエントリーのみ格納します。デフォルトはfalse。 | No |
| includes | カンマかスペースで区切られた、包括するファイルのパターンのリスト。 省略時はすべてのファイルが含まれます。 | No |
| includesfile | ファイル名。 このファイルの各行が包括パターンとして解釈されます。 | No |
| excludes | カンマかスペースで区切られた、除外するファイルのパターンのリスト。 省略時は、(デフォルト除外集合を除いて)除外されるファイルはありません。 | No |
| excludesfile | ファイル名。 このファイルの各行が除外パターンとして解釈されます。 | No |
| defaultexcludes | デフォルト除外集合を使うかどうかを指定します("yes"/"no")。 省略時はデフォルト除外集合が使用されます。 | No |
| update | 出力ファイルが既に存在していた場合、 更新するか、上書きするかを指定します。デフォルトはfalse。 | No |
| whenempty | ファイルがマッチしない場合の動作。 有効な値は、"fail"、 "skip"、"create"。 デフォルトは"skip"です。 | No |
| duplicate | 同じファイルが見つかった場合の動作。 有効な値は"add"、"preserve"、"fail"。 デフォルトの値は"add"です。 | No |
ZIPタスクは、アーカイブに含めるファイルを指定する、どのような数の
<fileset>
もサポートします。
ZIPタスクは、アーカイブに含めるファイルを指定する、どのような数の
<zipfileset>
もサポートします。
<zipgroupfileset>は複数のZIPファイルをマージして
1つのアーカイブにすることを可能にします。
zipfileset srcでファイルが追加されるのと同じ方法で、
このファイルセット内で見つかったそれぞれのファイルは、アーカイブに追加されます。
<zip destfile="${dist}/manual.zip"
basedir="htdocs/manual"
/>
htdocs/manualディレクトリ内のすべてのファイルを、
${dist}ディレクトリのmanual.zipにZIPします。
<zip destfile="${dist}/manual.zip"
basedir="htdocs/manual"
update="true"
/>
htdocs/manualディレクトリ内のすべてのファイルを、
${dist}ディレクトリのmanual.zipにZIPします。
manual.zipが存在しなかった場合は作成され、
そうでない場合は、新たな/変更したファイルで更新されます。
<zip destfile="${dist}/manual.zip"
basedir="htdocs/manual"
excludes="mydocs/**, **/todo.html"
/>
htdocs/manualディレクトリ内のすべてのファイルをZIPします。
ディレクトリmydocs直下のファイルや、
todo.htmlという名前のファイルは除外されます。
<zip destfile="${dist}/manual.zip"
basedir="htdocs/manual"
includes="api/**/*.html"
excludes="**/todo.html"
/>
htdocs/manualディレクトリ内のすべてのファイルをZIPします。
ただし、apiディレクトリ以下のファイルのみZIPされ、
またtodo.htmlという名前のファイルは除外されます。
<zip destfile="${dist}/manual.zip">
<fileset dir="htdocs/manual"/>
<fileset dir="." includes="ChangeLog.txt"/>
</zip>
htdocs/manualディレクトリ内のすべてのファイルをZIPし、
また、カレントディレクトリのファイルChangeLog.txtを追加します。
ChangeLog.txtは、
ちょうどhtdocs/manual/ChangeLog.txtの場所にあったかのように、
ZIPファイルのルートに追加されます。
<zip destfile="${dist}/manual.zip">
<zipfileset dir="htdocs/manual" prefix="docs/user-guide"/>
<zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/>
<zipfileset src="examples.zip" includes="**/*.html" prefix="docs/examples"/>
</zip>
htdocs/manualディレクトリ内のすべてのファイルを
アーカイブ内のdocs/user-guideディレクトリにZIPし、
カレントディレクトリのファイルChangeLog27.txtを
docs/ChangeLog.txtとして追加し、
examples.zip内の
すべてのhtmlファイルをdocs/examples以下に含めます。
作成されたアーカイブは、以下のファイルを含むでしょう。
docs/user-guide/html/index.html
docs/ChangeLog.txt
docs/examples/index.html
次のコードは、
<zip destfile="${dist}/manual.zip">
<zipfileset dir="htdocs/manual" prefix="docs/user-guide"/>
<zipgroupfileset dir="." includes="examples*.zip"/>
</zip>
htdocs/manualディレクトリ内のすべてのファイルを
アーカイブ内のdocs/user-guideディレクトリにZIPし、
examples1.zipやexamples_for_brian.zip
のような
examples*.zipにマッチするファイルを含めます。
Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.