Если я правильно прочитал вопрос, это может быть то, что вы ищете вместо этого.
Так для вашего примера ...
<target name="do-all">
<antcall target="do-first">
<param name="dir-name" value="first"/>
<param name="intented-target" value="init"/>
</antcall>
<antcall target="do-first">
<param name="dir-name" value="second"/>
<param name="intented-target" value="build"/>
</antcall>
<antcall target="do-first">
<param name="dir-name" value="third"/>
<param name="intented-target" value="compile"/>
</antcall>
</target>
<target name="do-first">
<echo>Hello from ${dir-name} ${intented-target}</echo>
<ant antfile="${dir-name}/build.xml" target="${intented-target}"/>
</target>
Когда вы вызываете это из Ant, вы должны ввести это в командной строке:
ant do-all
и ваш вывод должен выглядеть следующим образом:
do-all:
do-first:
[echo] Hello from first init
do-first:
[echo] Hello from second build
do-first:
[echo] Hello from third compile
BUILD SUCCESSFUL
Total time: 1 second
Вам, конечно, нужно сделатьубедитесь, что имя каталога, которое вы используете в качестве параметра, действительно существует, или сборка не удастся.
Вы также всегда можете передать переменную, которую хотите использовать, добавив значение в файл build.properties.