Ant可以从属性文件扩展环境变量吗?

问题描述:

我有一个关于Ant及其对环境变量的处理的问题。 为了说明我有一个小样本。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设置为某个值(富在我的情况)并使用以下命令行运行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 environment任务后添加

<property file="test.props" /> 

在全:

<property environment="env" /> 
<property file="test.props" /> 

<target name="testProps"> 
    <echo message="${env.MyEnvVar}"/> 
    <echo message="${MY_PROPERTY}"/> 
</target> 

当您提供性能的命令行这被构建的内容之前处理上的文件,但当时${env.MyEnvVar}尚未设置。

+2

不完全是我希望的,但它确实有效。必须看看我是否可以完成这项工作。谢谢(你的)信息。 – sfitts 2010-07-13 21:10:45