【问题标题】:How to do an IF/ELSE in NANT 0.91?如何在 NANT 0.91 中进行 IF/ELSE?
【发布时间】:2015-09-22 14:18:18
【问题描述】:

我们使用的是 Nant 0.91,所以 不可用。您将如何在 Nant 0.91 中进行 IF/ELSE?我想在 NAnt 0.91 中做类似(使用 NAnt 0.92 语法)的事情。 [我不允许修改当前安装的 NAnt 0.91]:

<choose>
   <when test="${deploy.env=='PROD'}">
        <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
    </when>
    <otherwise>
        <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
    </otherwise>
</choose>

【问题讨论】:

    标签: nant


    【解决方案1】:

    我们在这里使用的最简单的解决方案是只使用两个if 任务,一个对另一个进行否定测试:

    <if test="${deploy.env == 'PROD'}">
        <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
    </if>
    <if test="${deploy.env != 'PROD'}">
        <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
    </if>
    

    但是,在您的情况下,您也可以利用 property task 具有内置 if/unless 功能的事实:

    <property name="deploy.root.dir" if="${deploy.env == 'PROD'}" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
    <property name="deploy.root.dir" unless="${deploy.env == 'PROD'}" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
    

    【讨论】:

    • 太棒了!正是我想要的!
    【解决方案2】:

    如果条件为真,您可以设置默认属性值,然后覆盖:

    <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${deploy.env}\${app.dest.dir}\" />
    <if test="${deploy.env == 'PROD'}">
        <property name="deploy.root.dir" value="\\${deploy.server}\${deploy.mode}\${app.dest.dir}\" />
    </if>
    

    【讨论】:

      猜你喜欢
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2011-12-30
      • 1970-01-01
      相关资源
      最近更新 更多