在ant中使用环境属性

时间:2016-05-06 09:50:54

标签: java jenkins ant environment-variables

这可能是一个微不足道的问题,但我对Ant中的环境使用感到困惑。我想更新一个我知道在Jenkins上工作正常的目标,我需要在推送到prod之前在本地测试我的更改。但是,即使我写了一个简单的目标,例如:

,Ant似乎也不想读取我的环境变量
<target name="test">
    <property environment="env" />
    <echo>
        ${env.user.country}
        ${env.user.language}
        ${env.TARGET}
    </echo>
</target>

打印

Buildfile: /home/local/ANT/.../Workplace/dra/draModelsConfig/build.xml

test:
     [echo] 
     [echo]             ${env.user.country}
     [echo]             ${env.user.language}
     [echo]             ${env.TARGET}
     [echo]         

BUILD SUCCESSFUL Total time: 0 seconds

我确切地调用目标Jenkins主机如何在构建日志中记录它(针对此问题进行了简化):

ant -file build.xml -DTARGET=build test

为什么没有env包含环境变量呢?

1 个答案:

答案 0 :(得分:1)

在命令中:

ant -file build.xml -DTARGET=build test

-DTARGET=build正在设置名为TARGET属性,而不是环境变量。

TARGET可以像常规属性一样回应:

的build.xml

<project name="ant-echo-command-line-prop">
    <echo>My TARGET: ${TARGET}</echo>
</project>

输出

$ ant -DTARGET=build
[echo] My TARGET: build