2011-11-10 24 views
34

Jak sprawdzić istnienie nieruchomości za pomocą Ant?Jak sprawdzić, czy nieruchomość istnieje?

Jestem otwarty na korzystanie z ant-contrib, jeśli Ant nie zapewnia podobnej rzeczy.

Ponadto, ma zadanie potwierdzenia, które zapewnia exists, ale to zapewnienie nie jest tym, czego potrzebuję, ponieważ wolałbym wartość zwracaną przez boolowską.

+1

\t \t \t \t \t \t \t \t \t \t \t

+0

Proszę edytować powyższy komentarz, jeśli ktoś wie jak, nie wiem, czy znaczniki kodu przy użyciu 4 wcięcia działa tu w komentarzu. –

+1

Zadanie "if" jest obsługiwane tylko przez Ant-contrib, którego nie polecałbym do poważnego programowania. – raudi

Odpowiedz

52

Możesz użyć zadania Condition z warunkiem isset.

<project default="test"> 

    <property name="a" value="a"/> 

    <target name="test"> 

    <condition property="a.set" else="false"> 
     <isset property="a"/> 
    </condition> 

    <condition property="b.set" else="false"> 
     <isset property="b"/> 
    </condition> 

    <echo message="a set ? ${a.set}"/> 
    <echo message="b set ? ${b.set}"/> 

    </target> 
</project> 

wyjściowa:

test: 
    [echo] a set ? true 
    [echo] b set ? false 
+6

Pamiętaj, aby ** pominąć ** the $ {} wokół nazw właściwości w '' i ''. – Kent

9

Od Ant 1.9.1 możliwe jest użycie "jeśli" i "chyba" atrybutów. Możesz użyć tych nowych atrybutów, jeśli dodasz 2 przestrzenie nazw xmlns: if = "ant: if" i xmlns: unless = "ant: unless" do projektu.

<!DOCTYPE project> 
<project xmlns:if="ant:if" xmlns:unless="ant:unless"> 
    <property unless:set="property" name="property.is.set" value="false"/> 
    <property if:set="property" name="property.is.set" value="true"/> 
    <echo>${property.is.set}</echo> 
</project> 

zobaczyć również https://ant.apache.org/manual/ifunless.html

+2

W rzeczywistości powinieneś użyć Ant> = 1.9.3, ponieważ pierwsza implementacja w Ant 1.9.1 zawierała błędy związane z funkcją if/unless! – Rebse

Powiązane problemy