Я использую задачу jar
в ant и хочу исключить определенный каталог. Структура каталогов примерно такая:
food
|_ fruits
|_ apples
|_ bananas
(сделанный общим и немного упрощенным)
И у меня есть задача муравья, подобная этой:
<jar destfile="Dest.jar">
...
<fileset dir="food">
<exclude name="**/bananas/" />
<exclude name="**/*Test*" />
<include name="**/*.class" />
</fileset>
...
Я пытаюсь сделать следующее:
- включает все файлы, заканчивающиеся на ".class" (это работает)
- исключить все файлы, которые имеют "Test" в имени файла (это работает)
- исключить весь каталог с именем "bananas" ( это не работает )
Я пробовал несколько комбинаций подстановочных знаков, пытаясь исключить каталог бананов, но безрезультатно. Я также попытался изменить порядок включения и исключения, хотя я понятия не имею, если это имеет значение. Я также попробовал несколько других предложений [1] [2], которые не сделали работу. Мое дикое предположение на данный момент состоит в том, что в каталоге bananas есть файлы, которые соответствуют "* .class", поэтому я думаю, что их включение предотвращает исключение бананов.
NB. Я точно сопоставляю настоящее имя каталога бананов, поэтому проблема с учетом регистра не должна быть проблемой. Если это может упростить задачу, я могу сослаться на полный путь к каталогу, хотя я бы предпочел быть более дружественным к рефакторам в задаче ant.
Как я могу исключить каталог, который уже включен в набор файлов ant?
[1] http://www.velocityreviews.com/forums/t146608-in-ant-how-do-you-exclude-a-directory-from-copy-or-zip.html
[2] http://www.java2s.com/Tutorial/Java/0520__Ant/filesetwithexclude.htm