我知道有ant-contrib
,它为 ant 提供了“if-else”逻辑。但我需要在没有 ant-contrib
. 那可能吗?
我需要工作的伪代码:
if(property-"myProp"-is-true){
do-this;
}else{
do-that;
}
谢谢!
我知道有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>
您可以在目标中添加“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>