在Ant中动态构建文件名



我有一个需求,我想动态加载属性文件到Ant。我有像deploy_DEV这样的属性文件。属性,deploy_QA。属性,deploy_UAT。属性等等。当前环境(即dev, QA或UAT作为参数传入)。基于此,我想加载适当的属性文件。我的代码如下:

<for list="${deployEnvs}" param="site">
   <property file="${deploy_@{site}}"/>
</for>

然而,这不起作用。有什么简单的方法可以做到这一点吗?如果需要,我还可以访问ant-contrib。

首先,<for>需要一个<sequential>嵌套在它下面。

第二,${deploy_@{site}}中的${导致Ant搜索名为deploy_...的属性。删除周围的${}部件

第三,缺少.properties文件扩展名。

下面是两个属性文件和一个读取属性文件并输出其值的Ant脚本。

deploy_DEV.properties

key1=value1

deploy_QA.properties

key2=value2

build . xml

<project name="ant-properties-files-with-for" default="run" basedir=".">
    <taskdef resource="net/sf/antcontrib/antlib.xml" />
    <target name="run">
        <property name="deployEnvs" value="DEV,QA"/>
        <for list="${deployEnvs}" param="site">
            <sequential>
                <property file="deploy_@{site}.properties"/>
            </sequential>
        </for>
        <echo>key1: ${key1}</echo>
        <echo>key2: ${key2}</echo>
    </target>
</project>

输出
run:
     [echo] key1: value1
     [echo] key2: value2

相关内容

  • 没有找到相关文章

最新更新