3

ant-contribアリに「if-else」ロジックを提供するがあることを私は知っています。しかし、私はなし で同じことを達成する必要がありant-contribます。それは可能ですか?

私が作業する必要がある疑似コード:

if(property-"myProp"-is-true){
  do-this;
}else{
  do-that;
}

ありがとうございました!

4

2 に答える 2

4

とにかくant-contribsを使用することを強くお勧めしますが、常に値を持つプロパティをテストしている場合は、テストする新しいプロパティの名前の一部としてantマクロパラメーターを使用することを検討します

<macrodef name="create-myprop-value">
 <attribute name="prop"/>
 <sequential>
      <!-- should create a property called optional.myprop.true or -->
      <!-- optional.myprop.false -->
      <property name="optional.myprop.@{prop}" value="set" />
 </sequential>
</macrodef>

<target name="load-props">
  <create-myprop-value prop="${optional.myprop}" /> 
</target>

<target name="when-myprop-true" if="optional.myprop.true" depends="load-props">
...
</target>

<target name="when-myprop-false" if="optional.myprop.false" depends="load-props">
...
</target>

<target name="do-if-else" depends="when-myprop-true,when-myprop-false">
...
</target>
于 2010-07-08T07:00:51.357 に答える
3

ターゲットに「if」属性を入れることができます。

<target name="do-this-when-myProp-is-true" if="myProp">
...
</target>

これは、「myProp」が設定されている場合にのみ発生します。このターゲットを発火させたい場合は設定し、そうでない場合は設定しないように、 myProp を別の場所で定義する必要があります。別のケースでない限り、次のように使用できます。

<target name="do-this-when-myProp-is-false" unless="myProp">
...
</target>
于 2010-07-08T01:27:31.113 に答える