Sí, las dependencias se ejecutan antes de que se evalúen las condiciones.
Desde el Ant manual:
Importante: el caso y, a menos atributos sólo se activan o desactivan el objetivo al que están unidos. No controlan si los objetivos de los que depende un objetivo condicional se ejecutan. De hecho, ni siquiera se evalúan hasta que el objetivo está a punto de ejecutarse, y todos sus predecesores ya se han ejecutado.
También podría haber tratado a sí mismo:
<project>
<target name="-runTests">
<property name="testSetupDone" value="foo"/>
</target>
<target name="runTestsIfTestSetupDone" if="testSetupDone" depends="-runTests">
<echo>Test</echo>
</target>
</project>
estoy estableciendo la propiedad testSetupDone
dentro del objetivo en función, y la salida es:
Buildfile: build.xml
-runTests:
runTestsIfTestSetupDone:
[echo] Test
BUILD SUCCESSFUL
Total time: 0 seconds
Target está -runTests
ejecutado, aunque testSetupDone
no está configurado en este momento, y runTestsIfTestSetupDone
se ejecuta después ards, por lo que depend
se evalúa antes deif
(utilizando Ant 1.7.0).
Eso no es una respuesta a la pregunta que se hizo. –