2010-10-25 7 views

Antwort

19

Ja, die Abhängigkeiten werden ausgeführt, bevor die Bedingungen ausgewertet werden.


Vom Ant manual:

Wichtig: die, wenn und solange Attribute nur aktivieren oder deaktivieren das Ziel, an die sie gebunden sind. Sie steuern nicht, ob Ziele, von denen ein bedingtes Ziel abhängt, ausgeführt werden. Tatsächlich werden sie erst ausgewertet, wenn das Ziel ausgeführt wird und alle Vorgänger bereits ausgeführt wurden.


Sie auch versucht, sich selbst haben könnte:

<project> 
    <target name="-runTests"> 
    <property name="testSetupDone" value="foo"/> 
    </target> 
    <target name="runTestsIfTestSetupDone" if="testSetupDone" depends="-runTests"> 
    <echo>Test</echo> 
    </target> 
</project> 

Ich gründe die Eigenschaft testSetupDone innerhalb des je Ziel, und der Ausgang ist:

Buildfile: build.xml 

-runTests: 

runTestsIfTestSetupDone: 
    [echo] Test 

BUILD SUCCESSFUL 
Total time: 0 seconds 

Ziel -runTests ist ausgeführt, obwohl testSetupDone in diesem Moment nicht gesetzt ist, und runTestsIfTestSetupDone wird nachher ausgeführt ards, so wird dependvorif ausgewertet (mit Ant 1.7.0).

4

Von the docs:

Ant tries to execute the targets in the depends attribute in the order they 
appear (from left to right). Keep in mind that it is possible that a 
target can get executed earlier when an earlier target depends on it: 

<target name="A"/> 
<target name="B" depends="A"/> 
<target name="C" depends="B"/> 
<target name="D" depends="C,B,A"/> 

Suppose we want to execute target D. From its depends attribute, 
you might think that first target C, then B and then A is executed. 
Wrong! C depends on B, and B depends on A, 
so first A is executed, then B, then C, and finally D. 

Call-Graph: A --> B --> C --> D 
+3

, dass keine Antwort auf die Frage, die gestellt wurde. –

Verwandte Themen