当前我有这个蚂蚁脚本:
<target name="Cleanup Snapshots" description="Cleanup TrueCM snapshots">
<echo>Executing: ${TrueCM_App}\ssremove.exe -h${TrueCM_Host} "${TrueCM_New_SS}"</echo>
<exec executable="${TrueCM_App}\ssremove.exe" failonerror="${TrueCM_Failon_Exec}">
<arg line="-h ${TrueCM_Host}"/>
<arg line='-f "${TrueSASE}/${Product_version}/${name}"'/>
</exec>
</target>
这个脚本的作用是它将使用一些参数执行ssremove.exe,如图所示。
但是,上述脚本仅在参数$ {Product_version}包含单词“Extensions”时才有效,例如6.00_Extensions
否则,如果它们不包含“Extensions”,则脚本应如下所示:
<target name="Cleanup Snapshots" description="Cleanup TrueCM snapshots">
<echo>Executing: ${TrueCM_App}\ssremove.exe -h${TrueCM_Host} "${TrueCM_New_SS}"</echo>
<exec executable="${TrueCM_App}\ssremove.exe" failonerror="${TrueCM_Failon_Exec}">
<arg line="-h ${TrueCM_Host}"/>
<arg line='-f "${TrueSASE}/${name}"'/>
</exec>
</target>
所以我的问题是我应该如何添加包含“Extensions”行的if else语句?或者我如何检查“Extensions”字样是否存在?
答案 0 :(得分:6)
有一个ant库:antlib(http://ant-contrib.sourceforge.net)
支持if / else语句(http://ant-contrib.sourceforge.net/tasks/tasks/index.html)
网站上的示例:
<if>
<equals arg1="${foo}" arg2="bar" />
<then>
<echo message="The value of property foo is bar" />
</then>
<else>
<echo message="The value of property foo is not bar" />
</else>
</if>
<if>
<equals arg1="${foo}" arg2="bar" />
<then>
<echo message="The value of property foo is 'bar'" />
</then>
<elseif>
<equals arg1="${foo}" arg2="foo" />
<then>
<echo message="The value of property foo is 'foo'" />
</then>
</elseif>
<else>
<echo message="The value of property foo is not 'foo' or 'bar'" />
</else>
</if>
答案 1 :(得分:1)
如果您无法在Ant构建中添加自定义库,那么只是概述一个解决方案。请注意,您需要一个非常新的Ant版本(我认为&gt; = 1.7)。
首先,您需要将测试结果放在属性中(使用带有condition的contains;请参阅Ant Manual)。然后,您可以在exec
中使用该属性,以便在属性为true
时跳过它。
<condition property="hasExtensions">
<contains string="${Product_version}" substring="Extensions">
</condition>
<exec ... unless="hasExtensions">
...
</exec>