2009-07-29 2 views
0

Как вы вызываете конкретную цель во всех файлах build.xml, расположенных во всех подкаталогах с помощью подстановочных знаков (т. Е. Не жестко кодируя имена подкаталогов)? Следующий ответ жестко запрограммирован. Есть ли способ сделать это без hardcode?ANT: Как вызвать цель для всех build.xml в подкаталогах?

Похожие на этот вопрос: Pass ant target to multiple build.xml files in subdirectories

ответ

0

Я буду задавать различные свойства в пределах моего файла build.properties. Я использую их для динамического создания путей в моих целях.

Определить местоположение файла build.properties:

<!-- all properties are in build.properties --> 
    <property file="build.properties" /> 

использовать эти свойства в ваших целей:

свойства в свойствах сборок аналогичны настройка INI-файл:

project.rootdir=c:/Deploy 
project.tempbuilddir = c:/Deploy/Temp/Inetpub 
project.builddir=c:/Deploy/Inetpub 
# Build prefix will be added to that tags urls (.../tags/${project.buildprefix}Build_${today.date}) 
project.buildprefix=ACA_ 

Я думаю, вы могли бы использовать динамический файл как файл ваших свойств, при необходимости, до тех пор, как вы определяете правильный путь к файл. Вы можете указать его на серверный файл, чтобы динамически писать ваши файлы свойств (ColdFusion, PHP, JSP, что угодно).

+0

Это не делает то, что я прошу. У меня есть build.xml верхнего уровня. Я хочу, чтобы он вызывал задачу (т.е. чистую) во всем файле build.xml во всех подкаталогах верхнего уровня. – Tazzy531

0

звучит как идеальный кандидат на <subant> задачи.

6

Используйте Ant subant задачу так:

<subant target="sometarget"> 
     <fileset dir="." includes="*/build.xml" /> 
</subant> 

Если вы включили «inheritall» атрибут (так же, как, как он используется в но по умолчанию напротив), вы можете разделить все свойства вашего текущего проекта и все слишком. Это также упрощает переписывание задач, определенных в вашем основном файле build.xml, если вам нужно.

Подробнее об этом here.

Смежные вопросы