默认情况下,使用<loadproperties srcFile="fileDir"/>
时,属性会在ant脚本执行开始时加载。
我的问题是.properties文件在开头不存在,因为我从其他方向复制它(根据其他方面更改内容)。所以问题是:我能以某种方式动态地在ant脚本中间加载.properties文件吗?
答案 0 :(得分:1)
loadproperties
只是一个普通的Ant任务。它等同于多次调用property
任务来设置属性。您可以在脚本的开头,某个目标的中间或其他任何地方调用它。
因此,如果在执行期间动态填充属性文件,并且在目标targetX
中的某个时刻,您想要加载它,则只需照常调用该任务:
<target name="targetX" >
<loadproperties srcfile="${pathToFile}" />
</target>
请注意,如果您之前已经加载了属性(在Ant脚本的最开头),那么第二次加载将不会覆盖在第一次调用loadproperties
时设置的属性值(因为属性是不可变的)。如果要覆盖它们,可以使用Ant-Contrib的var
任务。