2012-06-27 25 views
6

これは私が達成しようとしているものです:antcallは条件に基づいて

プロパティが設定されている場合は、antcall targetを呼び出します。これは実践ですか?誰かが私にどのように教えてくれる?

<condition> 
    <isset property="some.property"> 
     <antcall target="do.something"> 
    </isset> 
</condition> 
+0

[antの状態をチェックし、その値に応じてメッセージを出力する方法は?](http://stackoverflow.com/questions/10680982/how-check-for-a-condition-inant価値ある印刷に依存するメッセージ) –

答えて

6

このような何か作業をする必要があります:

<if> 
    <isset property="some.property"/> 
    <then> 
     <antcall target="do.something"> 
    </then> 
</if> 

その後、条件がant-contribが必要ですが、これだけ蟻に有用何でもない場合。

+0

素晴らしい。私のために働く。私はAnt Contribと大丈夫です。 – soothsayer

-1

はまた、あなたがこれらの目的のためにグルーヴィー呼び出すことができます考えてみましょう:

<use-groovy/> 
<groovy> 
    if (Boolean.valueOf(properties["some.property"])) { 
    ant.project.executeTarget("do.something") 
    } 
</groovy> 
6

私は本当に遅れてこれによ知っているが、ここであなたがもしdoesnのアリ - contribのを使用している場合は、これを行うための別の方法です入れ子になったantcall要素をサポートしていません(私はantcontrib 1.02bを使用していますが、これは使用しません)。あなたはさらにsome.propertyは、このターゲットが使用して呼び出された直前に設定されるべきであるかどうかを確認するために、これを拡張することができ

<target name="TaskUnderRightCondition" if="some.property"> 
    ... 
</target> 

があれば、属性が評価される前にbecuase依存が実行される依存します。したがって、あなたはこのかもしれない:TestSomeValueが呼​​び出される。この場合

<target name="TestSomeValue"> 
    <condition property="some.property"> 
    <equals arg1="${someval}" arg2="${someOtherVal}" /> 
    </condition> 
</target> 

<target name="TaskUnderRightCondition" if="some.property" depends="TestSomeValue"> 
    ... 
</target> 

をして、someval場合== someOtherValその後、some.propertyが設定され、最終的には、TaskUnderRightConditionが実行されます。 someval!= someOtherValの場合、TaskUnderRightConditionはスキップされます。

条件の詳細については、the documentationで確認できます。

+0

あなたは ''のようなことをすることができますか? – siledh

+0

@siledh分かりません。私はそうは思わない。 –

関連する問題