我正在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"/>
变量状态可以具有下一个值:STOPPED,STOPPING或STARTED(我之前检查过该值是否正确)。正如我所说的,即使state = STOPPED或state = STOPPING,也从未设置属性检查,因此我的任务总是成功的。
我尝试在equals中使用forcetring和casesensitive,我尝试过:
<fail if="check" message="Server stopped"/>
但条件仍无效。
关于如何解决这个问题并使其发挥作用的任何建议或想法?
感谢。
答案 0 :(得分:0)
试试这个:
<fail message="Server stopped">
<condition>
<or>
<equals arg1="${state}" arg2="STOPPED" />
<equals arg1="${state}" arg2="STOPPING" />
</or>
</condition>
</fail>
答案 1 :(得分:0)
尝试:
<target name="server_stopped" if="check">
<fail message="Server stopped"/>
</target>