как проверить, установлено ли свойство среды dos в скрипте ant - PullRequest
1 голос
/ 14 декабря 2011

Ant script

    <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

Я не определил переменную окружения PARA в dos.Как получить ожидаемый результат.

Примечание: я использую ant 1.8.2 и antcontrib в windows 7

Ответы [ 3 ]

2 голосов
/ 04 января 2012

Приведенный ниже код устанавливает свойство 'port' для переменной окружения 'CATALINA_PORT', если оно определено, и для '8080' в противном случае:

<property environment="env" />
<condition property="port" value="${env.CATALINA_PORT}" else="8080">
    <isset property="env.CATALINA_PORT"/>
</condition>
2 голосов
/ 14 декабря 2011

Свойства муравья, однажды установленные, являются неизменяемыми. Поэтому вы можете просто установить свойство.

Если он уже был установлен с помощью переменной среды, он будет иметь значение и не будет установлен на "abc". Если он не был установлен через переменную окружения, будет применяться ваш оператор <property/>.

<property name="env.PARA" value="abc"/>

<echo message="${env.PARA}"/>
1 голос
/ 16 декабря 2011

Ниже приводится «способ 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
...