我有一个关于 Ant 及其对环境变量的处理的问题。
为了说明我有一个小样本。
给定 Ant 构建文件 test.xml:
<project name="myproj" default="testProps">
<property environment="env"/>
<target name="testProps">
<echo message="${env.MyEnvVar}"/>
<echo message="${MY_PROPERTY}"/>
</target>
</project>
和属性文件 test.props:
MY_PROPERTY=${env.MyEnvVar}
现在设置环境变量
MyEnvVar
到某个值(在我的情况下为 foo)并使用以下命令行运行 Ant:ant -f test.xml -propertyfile test.props testProps
我得到的输出是:
[echo] foo
[echo] ${env.MyEnvVar}
我想知道的是是否有任何方法可以构建输入属性文件,以便我得到
[echo] foo
[echo] foo
也就是说,我想在 Ant 脚本中替换的属性文件中命名一个环境变量。注意 - 我知道如何直接访问环境变量(就像这里所做的那样)。我需要做的是使用一组 Ant 脚本,这些脚本期望在使用不同名称定义相同属性的环境中包含一组属性。因此,在属性文件中“桥接”它们的想法。
我正在使用 Ant 版本 1.6.5。
最佳答案
您需要阅读 test.props
环境后的属性文件 - 您可以使用另一个 property
任务,即添加
<property file="test.props" />
在您现有的
property environment
之后任务。全文:
<property environment="env" />
<property file="test.props" />
<target name="testProps">
<echo message="${env.MyEnvVar}"/>
<echo message="${MY_PROPERTY}"/>
</target>
当您在命令行上提供属性文件时,它会在构建内容之前处理,但当时
${env.MyEnvVar}
尚未设置。
关于ant - Ant 可以从属性文件中扩展环境变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3241274/