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 для аналогичной работы. Это вызовет указанную цель для каждой записи в списке, каждый раз передавая запись в качестве параметра.

Другие вопросы по тегам