【发布时间】:2016-05-18 06:47:19
【问题描述】:
我正在 Ant 中执行一项任务,该任务测试服务器是停止还是运行,如果服务器停止,Ant 任务将失败并发送电子邮件。问题是我的状态不能正常工作,无论服务器停止还是运行,任务总是很好。
这是我的条件的代码:
<condition property="check" value="true" >
<or>
<equals arg1="${state}" arg2="STOPPED" />
<equals arg1="${state}" arg2="STOPPING" />
</or>
</condition>
<fail if="${check}" message="Server stopped"/>
变量 state 可以有下一个值:STOPPED、STOPPING 或 STARTED(我之前检查过该值是否正确)。正如我所说,即使 state = STOPPED 或 state = STOPPING,也永远不会设置属性检查,所以我的任务总是成功的。
我试过在equals中使用forcestring和区分大小写,我也试过了:
<fail if="check" message="Server stopped"/>
但条件仍然不起作用。
关于如何解决这个问题并使其发挥作用的任何建议或想法?
谢谢。
【问题讨论】:
-
<fail if="check" message="Server stopped"/>绝对是<fail>的正确使用方式。如果你把<echo>check: ${check}</echo>放在<fail>之前,输出是什么?