2011-01-07 11 views
1

OKこれは本当にシンプルなようです。私は、Apache Ant 1.8を使用して、そして私が行うターゲットを持っている:Ant:一緒にincludeとexcludeを使用する

<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> 

私はそれが入力/ goodfolder1および入力/ goodfolder2の.tar.bz2とを作りたい、「BADFILE」という名前のファイルを除くと、拡張子 ".badext"を持つファイルを除外します。それは私に.tar.bz2を与えていますが、badfileと* .badextを含んでいます - 除外は無視されるようです。

include/excludeの順番は違いはありません。私は包含/包括をラップしようとしました(文書はそれが暗黙だと言っていますか?)、それは何の違いもありませんでした。

the manual has a very similar exampleから多少異なる文脈がありますが、私には分かりづらいものがあります。

EDIT:dir="input"属性に関連する可能性があります。つまり、「入力」にすべてを追加してから、そのすべてにタイルセットを追加します。必要なファイルはprogram.tar.bz2に2回表示されますが、除外されるファイルは1回だけ表示されます。しかし、dirは必須であり、マニュアルの例とどのように違うのか分かりません。

答えて

0

2つの<tarfileset>要素を使用する必要があると思います。 <include>および<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>

+0

ファイルやフォルダに 'include'と' exclude'パターンを使用できます。あなたは 'includefile'と' excludesfile'を考えているかもしれません。 –

2

ああ、<tarfileset>自体は私の問題を引き起こしていたものです。

私がそれを削除し、包含/除外を<tar>の中に直接入れると、正常に動作します。

関連する問題