我的Ant脚本应该下载一个ZIP文件,其中包含要安装在数据库(Oracle或PostgreSQL)中的设置文件并生成转储。根据设置文件中提供的属性数据生成不同的转储。
我有3个属性文件:
prepare.MTdump.generate=true
是否可以在Ant中加载第一个属性文件user.properties
并根据条件(例如,如果prepare.MTdump.generate=true
)加载MT.properties
或者加载nonMT.properties
假加载{{} 1}}?
我无法添加IF条件来加载属性文件。我甚至尝试使用unless
<target>
条件,但未能达到要求。
答案 0 :(得分:1)
如果你使用ant-contrib,这应该有效:
<property file="user.properties"/>
<if>
<equals arg1="${prepare.MTdump.generate}" arg2="true"/>
<then>
<property file="MT.properties"/>
</then>
<else>
<property file="nonMT.properties"/>
</else>
</if>
否则,你可以只使用条件。只需运行下面的loadProperties目标。
<property file="user.properties"/>
<target name="test.if.use.MT">
<condition property="useMT">
<equals arg1="${prepare.MTdump.generate}" arg2="true"/>
</condition>
<condition property="useNonMT">
<not>
<equals arg1="${prepare.MTdump.generate}" arg2="true"/>
</not>
</condition>
</target>
<target name="loadMTProperties" if="${useMT}" depends="test.if.use.MT">
<property file="MT.properties"/>
</target>
<target name="loadNonMTProperties" if="${useNonMT}" depends="test.if.use.MT">
<property file="nonMT.properties"/>
</target>
<target name="loadProperties" depends="loadMTProperties, loadNonMTProperties"/>