Ant有条件地设置属性

时间:2014-05-08 22:15:50

标签: ant

是否可以在Ant中设置动态设置属性?

目前我们所有的战争都有相同的名字:" mywar.war"。我希望用JDK6建立战争,以及#34; mywar-1.6.war"而那些用JDK7构建的仍然只是" mywar.war"。

目前:

<war warfile="${dist.dir}/mywar.war">
..
<war />

我可以包含这样的Java版本:

<war warfile="${dist.dir}/mywar-${ant.java.version}.war">

但我想拥有的是做这样的事情的逻辑:

if (${ant.java.version} == "1.6") {
  war.name="mywar-${ant.java.version}";
} else {
  war.name="mywar";
}

<war warfile="${dist.dir}/${war.name}.war">

有没有正确的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:0)

有条件地设置属性的方法是使用the condition task

<condition property="war.suffix" value="-1.6" else="">
  <equals arg1="${ant.java.version}" arg2="1.6"/>
</condition>

<war warfile="${dist.dir}/mywar${war.suffix}.war">

这里的诀窍是else=""意味着war.suffix将是除1.6之外的任何版本的空字符串。

答案 1 :(得分:-1)

是的,你可以使用类似的东西,但它不能在蚂蚁中使用。你必须下载ant-contrib.jar

然后你有这样的事情

<if>
 <equals arg1="${ant.java.version}" arg2="1.6" />
 <then>
   war.name="mywar-${ant.java.version}";
 </then>
 <else>
   war.name="mywar";
 </else>
</if>

See this link for ant contrib