Я пытаюсь создать 2 zip-файла как часть задачи ant. Оба они похожи, но один включает некоторые дополнительные данные. Поэтому, чтобы уменьшить код, я бы хотел определить набор файлов и ссылаться на него. Единственная проблема заключается в том, что возникает ошибка.Ошибка при создании zip-файла с помощью refid
Задача:
<target name="create-zips" depends="cleanup, compile, package-jar">
<zipfileset id="zipfiles">
<zipfileset dir="${ant.project.name}-dist" includes="${jarname}.jar" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui.command" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram.bat" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui.bat" filemode="755" prefix="${title}"/>
<zipfileset dir="${docs.dir}" includes="myprogram_readme.txt" prefix="${title}"/>
</zipfileset>
<zip destfile="${deploy.dir}/myprogram_${version}.zip" whenempty="fail" defaultexcludes="true">
<zipfileset refid="zipfiles"/>
<zipfileset dir="${otherdata.dir}" includes="other/*.*" prefix="${title}"/>
</zip>
<zip destfile="${deploy.dir}/myprogram_noother_${version}.zip" whenempty="fail" defaultexcludes="true">
<zipfileset refid="zipfiles"/>
</zip>
</target>
При запуске задачи:
create-zips:
BUILD FAILED
/path/to/my/buildfile/build-tools.xml:119: Problem opening /path/to/my/data/docs/myprogram_readme.txt
Я проверил, что файл существует. Удаление readme включает только ошибку, возникающие в другом файле. Кроме того, если я просто скопирую и вставляю zipfileset в 2 отдельных тега, все работает отлично. Но я не хочу этого делать.
Редактировать: версия Apache Ant (TM) 1.8.2, составленная 14 октября 2011 года, Mac OS X 10.7. Не пробовали ни на одной другой платформе.
Это делает определенный смысл, хотя было бы неплохо вставить наборы файлов. Вероятно, я мог бы использовать селекторы в моем случае, так как есть родительский каталог для всех соответствующих файлов. – node1377
Но я вспомнил еще одну проблему. Я не смог разрезать пути, а zip удерживал весь путь от корня до моих файлов. Может быть, вы сможете это исправить. – Jarekczek