ant - 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到某个值(在我的情况下为 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/

相关文章:

java - 如何用 ANT 重命名 n 个文件? (批处理作业)

java - 用 ant 删除 Maven 版本标签

java - Ivy 加载不必要的依赖项?

java - 在 cygwin 终端中运行的 Jetty 服务器不会通过 CTRL + c 终止

java - ant 和 ant-nodeps 有什么区别?

gradle - Gradle Ant Java 7提供CreateProcess错误= 206,文件名或扩展名太长

ant - 在 Flash Builder 4 中使用 Ant 任务

java - Java 10 上的 Swing 问题

xslt - 如何在 XSLT 中检查文件是否存在?

java - 单击按钮时引发抽象方法错误