我知道有ant-contrib,它为ant提供了“if-else”逻辑。
但是我需要在没有 ant-contrib的情况下实现相同的。那可能吗?

我需要工作的伪代码:

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

谢谢!

最佳答案

无论如何,我都强烈建议您使用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>

10-06 00:33