我有一个需求,我想动态加载属性文件到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