Ant: Как мне взаимодействовать со всеми подпапками и выполнять задачу в ant
В настоящее время я делаю
<foreach list="${myfolders}" target="bundle"
param="worksheet" inheritall="true"/>
выполнить целевую "связку" в списке папок. Однако проблема в том, что мне нужно установить этот список. Как мне использовать Ant, чтобы просто перебрать все папки данного родительского каталога?
Если есть способ сделать это, а также исключить определенные папки, это было бы еще лучше. Благодарю.
3 ответа
Вы можете предоставить <dirset>
для <foreach>
задание оперировать:
<foreach target="bundle" param="worksheet" inheritall="true">
<path>
<dirset dir="${subDir}">
<include name="*"/>
</dirset>
</path>
</foreach>
Обратите внимание, что list
параметр не используется, когда я делаю это таким образом.
Вы не можете использовать <dirset>
прямо под <foreach>
как вы можете с <fileset>
, Тем не менее, вы можете поставить <dirset>
под <path>
как показано выше. <include name="*"/>
предотвращает повторение вниз по дереву каталогов.
Вы можете сделать это с помощью subant
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<project name="subant" default="subant1">
<target name="subant1">
<subant target="">
<dirset dir="." includes="*"/>
<target name="release" />
</subant>
</target>
</project>
Я использую задачу foreach от ant-contrib для аналогичной работы. Это вызовет указанную цель для каждой записи в списке, каждый раз передавая запись в качестве параметра.