2011-11-10 30 views
34

Antを使用してプロパティの存在を確認するにはどうすればよいですか?プロパティが存在するかどうかを確認する方法?

私がant-contribの使用にオープンしているのは、Antに似たようなことがない場合です。

また、existsを提供するアサートタスクがありますが、アサーションはブール値の戻り値が好きなのでここで必要なものではありません。

+1

\t \t \t <等しくARG1 = "$ {MyPropで}" ARG2 = "$$ {MyPropで}" /> \t \t \t \tも参照 \t \t \t \t

+0

<エコーメッセージ= /「プロパティが存在しない」>を、誰かがどのように4つのインデントを使用してコードのタグがコメントでここに動作するかどうかわからない、と知っている場合は、上記のコメントを編集してください。 –

+1

"if"タスクはAnt-contribでのみサポートされていますが、深刻な開発には使用しないことをお勧めします。 – raudi

答えて

52

issetの条件でConditionタスクを使用できます。

<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> 

出力:

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

プロパティ名の周りに** $ {}を ''と ''に入れてください。 – Kent

9

Antは、 "もし" と属性 "ない限り" を使用することが可能である1.9.1ので。 2つの名前空間xmlns:if = "ant:if"とxmlns:unless = "ant:unless"をプロジェクトに追加すると、これらの新しい属性を使用できます。

<!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> 

https://ant.apache.org/manual/ifunless.html

+2

実際、Ant 1.9.1の最初の実装としてAnt> = 1.9.3を使用する必要があります。 – Rebse

関連する問題