如何在 NANT 0.91 中执行 IF/ELSE?
How to do an IF/ELSE in NANT 0.91?
我们使用的是 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>
我们在这里使用的最简单的解决方案是只使用两个 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}\" />
您可以设置默认 属性 值,然后在条件为真时覆盖:
<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>
我们使用的是 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>
我们在这里使用的最简单的解决方案是只使用两个 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}\" />
您可以设置默认 属性 值,然后在条件为真时覆盖:
<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>