Ant条件设置属性



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

目前我们所有的战争都有一个相同的名字:"mywar.war"。我希望使用JDK6构建的战争是"mywar-1.6"。而那些用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">

有正确的方法去做吗?

有条件地设置属性的方法是使用condition任务:

<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以外的任何版本上将是一个空字符串。

是的,你可以使用类似的东西,但它在ant中是不可用的。你必须下载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>

请参阅此链接查看ant贡献

相关内容

  • 没有找到相关文章

最新更新