ОК, похоже, все должно быть просто. Я использую 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>
Я хочу сделать .tar.bz2 для input / goodfolder1 и input / goodfolder2, исключая файлы с именем "badfile" и исключая файлы с расширением ".badext". Он дает мне .tar.bz2, но включает в себя badfile и * .badext - исключения, похоже, игнорируются.
Порядок включения / исключения, похоже, не имеет значения. Я попытался обернуть include / exclude в (документы говорят, что это неявно?), Но это не имело никакого значения.
Я уверен, что я упускаю что-то простое, поскольку в руководстве приведен очень похожий пример , хотя и в несколько ином контексте.
EDIT: похоже, это может быть связано с атрибутом dir="input"
: он добавляет все в «input», а затем добавляет в него все в tarfileset. Файлы, которые я хочу, появляются в файле program.tar.bz2 дважды, но исключаемые файлы появляются только один раз. Но dir
является обязательным, и я не вижу, чем это отличается от примеров в руководстве.