如果为ant脚本



我现在有这个ant脚本:

        <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>

所以我的问题是我应该如何添加if else语句包含完全行"扩展"?或者我如何检查"扩展"字是否存在?

有一个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>

如果您不能在Ant构建中添加自定义库,则概述一个解决方案。请注意,您需要一个最新版本的Ant(>= 1.7,我认为)。

首先,您需要将测试结果放入属性中(使用包含;参见《蚂蚁手册》)。然后,当属性为true时,您可以在exec中使用该属性来跳过它。

<condition property="hasExtensions">
    <contains string="${Product_version}" substring="Extensions">
</condition>
<exec ... unless="hasExtensions">
    ...
</exec>

相关内容

  • 没有找到相关文章

最新更新