1

わかりました、これは本当に単純なはずです。私は Apache Ant 1.8 を使用しており、次のようなターゲットがあります。

<delete file="output/program.tar.bz2"/>
<tar basedir="input" destfile="output/program.tar.bz2" compression="bzip2">
  <tarfileset dir="input">
    <include name="goodfolder1/**"/>
    <include name="goodfolder2/**"/>
    <exclude name="**/badfile"/>
    <exclude name="**/*.badext"/>
  </tarfileset>
</tar>

「badfile」という名前のファイルを除外し、拡張子が「.badext」のファイルを除外して、input/goodfolder1 と input/goodfolder2 の .tar.bz2 を作成したい。.tar.bz2 が表示されますが、badfile と *.badext が含まれています。除外は無視されているようです。

包含/除外の順序に違いはないようです。インクルード/エクスクルードをaでラップしようとしましたが(ドキュメントでは暗黙的だと言っていますか?)、違いはありませんでした。

マニュアルには非常によく似た例がありますが、コンテキストが多少異なるため、欠けている単純なものがあると確信しています。

編集:属性に関連しているように見えdir="input"ます:「入力」にすべてを追加し、tarfileset にすべてを追加しています。必要なファイルは program.tar.bz2 に 2 回表示されますが、除外されたファイルは 1 回しか表示されません。しかしdir、必須であり、これがマニュアルの例とどう違うのかわかりません。

4

2 に答える 2

2

ああ、<tarfileset>それ自体が私の問題の原因でした。

それを削除して、includes/excludes を の中に直接配置すると、正常に<tar>動作します。

于 2011-01-07T19:55:01.293 に答える
0

<tarfileset>2つの要素を使用する必要があると思います。<include>and<exclude>要素はファイル専用です。ディレクトリ用ではありません。例:

<tar basedir="input" destfile="output/program.tar.bz2" compression="bzip2"> <tarfileset dir="goodfolder1"> <exclude name="**/badfile"/> <exclude name="**/*.badext"/> </tarfileset> <tarfileset dir="goodfolder2"> <exclude name="**/badfile"/> <exclude name="**/*.badext"/> </tarfileset> </tar>

于 2011-01-07T19:54:22.077 に答える