是否可以在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">
有没有正确的方法可以解决这个问题?
答案 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>