Сборка Ant, которая находит приложения и перебирает их - PullRequest
2 голосов
/ 04 ноября 2008

Я использую Ant для создания приложений Delphi (вызывается из CruiseControl).

Я хочу, чтобы ant осуществлял рекурсивный поиск по дереву каталогов в поисках файлов * .dpr, а при обнаружении вызывает либо второй build.xml, либо, предпочтительно, макрос или цель, передавая каждое из найденных имен файлов в качестве «параметра». Я обнаружил, что могу использовать subant для поиска файлов build.xml и их последовательного запуска, но это не то, что мне нужно, так как я хочу избежать необходимости создавать build.xml для каждого приложения.

Чего я пытаюсь избежать, так это того, что мне нужно перечислить мои приложения в build.xml, а не искать их муравьем.

Пожалуйста, не говорите мне использовать другой инструмент для сборки, так как у нас уже есть большие инвестиции в использование Ant.

1 Ответ

3 голосов
/ 04 ноября 2008

Если вы используете ant-contrib , вы можете использовать цикл for:

<for param="file">
  <fileset dir="${process.dir}" includes="**/*.dpr" />
  <sequential>
    <ant antfile="subbuild.xml">
      <property name="in" value="@{file}"/>                            
    </ant>
  </sequential>
</for>      

Вы также можете вызвать макрос или цель, используя этот метод.

...