Ant脚本
<property environment="env"> <if> <equals arg1="${env.PARA} arg2=""/> <then> <property name="${env.PARA}" value="abc"/> <then> <if> <echo message="${env.PARA}">
输出
${env.PARA}
预期输出
abc
我还没有在dos中定义环境变量PARA
。如何获得预期的输出。
注意:我在Windows 7中使用ant 1.8.2和antcontrib
答案 0 :(得分:2)
Ant属性一旦设置,就是不可变的。因此,您只需设置属性即可。
如果已经通过环境变量设置了它,它将具有一个值,并且不会设置为"abc"
。如果未通过环境变量设置,则将应用<property/>
语句。
<property name="env.PARA" value="abc"/>
<echo message="${env.PARA}"/>
答案 1 :(得分:2)
下面的代码将'port'属性设置为环境变量'CATALINA_PORT'(如果已定义),否则设置为'8080':
<property environment="env" />
<condition property="port" value="${env.CATALINA_PORT}" else="8080">
<isset property="env.CATALINA_PORT"/>
</condition>
答案 2 :(得分:1)
以下是有条件设置属性的“ANT方式”。
<project name="test" default="run">
<property environment="env"/>
<target name="check-prop" unless="${env.PARA}">
<property name="env.PARA" value="abc"/>
</target>
<target name="run" depends="check-prop">
<echo message="${env.PARA}"/>
</target>
</project>
我是一个linux用户,但它应该在Windows上运行相同。
$ ant
Buildfile: /home/mark/tmp/build.xml
check-prop:
run:
[echo] abc
BUILD SUCCESSFUL
$ (export PARA="hello world"; ant)
Buildfile: /home/mark/tmp/build.xml
check-prop:
run:
[echo] hello world
BUILD SUCCESSFUL