如何检查ant脚本中是否设置了dos环境属性

时间:2011-12-14 17:40:57

标签: scripting ant null environment-variables dos

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

3 个答案:

答案 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