Я однажды пытался сделать то же самое, но безрезультатно.A fileset
не принимает вложенные fileset
.Когда вы пытаетесь обмануть и использовать zipfileset
в качестве внешнего набора, ant рассматривает его содержимое как zip-файлы.Когда ant пытается распаковать ваши файлы, вы получаете ошибку открытия .
A fileset
должен иметь атрибут dir
.Этот каталог должен быть родительским для всех компонентов набора файлов.Грустно, но факт.
Я попал в обход.Создать X наборов файлов.Эти наборы файлов могут быть указаны как вложенные элементы задачи zip
.Если в конкретном случае вам нужно меньше, чем X, тогда задайте значение по умолчанию для всех наборов файлов X и всегда архивируйте все X.
<!-- define X empty filesets -->
<fileset dir="c:\temp\1" includes="asdfasdf.neverhappens" id="nullfileset" />
<fileset id="zipfileset2" refid="nullfileset" />
<fileset id="zipfileset3" refid="nullfileset" />
<!-- here go real sets -->
<zipfileset dir="${scripts.dir}" includes="myprogram" />
Будьте осторожны с наборами файлов ant.Они изменчивы.Я однажды написал «вопрос» об этом, но кто-то удалил егоОтлично, тихая работа, ребята из стека, "спасибо" за это.
EDIT1: В Linux можно попробовать dir="/"
и использовать selector
s , вложенные в fileset
.Я был на Windows со своей проблемой, поэтому я не мог этого сделать.В Windows нет символа "/", и я собирал файлы с разных дисков.