2010-11-03 7 views
7

PytanieAnt warunki - co jest pierwsze 'if' lub 'chyba'

Jeśli mrówka docelową wykorzystuje zarówno jeśli i chyba że, który jest oceniany po raz pierwszy?

Przykład

Co przychodzi po pierwsze, jajko czy kura? . . .

<target name="prepare" if="chicken" unless="egg" > 
    <echo>Dinner time. Chicken is served!</echo> 
</target> 

Czy najpierw wyceniono by właściwości kurczaka? Albo własność jajka?

Odpowiedz

9

To naprawdę nie jest kwestia oceny, ponieważ właściwości są albo nie są ustawione przed wywołaniem celu.

EDIT: Spojrzałem na źródła 1.8.1 i logika jest następująca:

if (!testIfAllows()) { 
    project.log(this, "Skipped because property '" + project.replaceProperties(ifCondition) 
      + "' not set.", Project.MSG_VERBOSE); 
    return; 
} 
if (!testUnlessAllows()) { 
    project.log(this, "Skipped because property '" 
      + project.replaceProperties(unlessCondition) + "' set.", Project.MSG_VERBOSE); 
    return; 
} 

Więc unless nie będzie miało znaczenia, chyba że if przejściach. Pamiętaj jednak, że nie mają one nic wspólnego z oceną właściwości. Po prostu sprawdza, czy są ustawione.

+0

Odpowiednią klasą jest [org.apache.tools.ant.Target] (http://svn.apache.org/repos/asf/ant/core/tags/ANT_181/src/main/org/apache/tools /ant/Target.java) –

Powiązane problemy