[英]Reading Ant variables from multiple properties files
我有一个Ant构建文件,它在文件顶部导入以下内容:
<project name="..." ...>
<property file="build.properties"/>
...
在项目根目录中,我有两个属性文件: build.properties
和special-config.properties
。 我正在定义一个需要从special-config.properties
读取以下属性的目标:
always.ask =真
所以目标必须是这样的 (只是要记住, build.properties
已经被设置为属性文件这一目标不断执行长前):
<target name="exec-special-logic">
<!-- Somehow read special-config.properties#always.ask and set it to a local variable... -->
</target>
但我想知道如何加载第二个属性文件并使其属性(如always.ask
)可用于Ant。 提前致谢。
您可以根据需要从多个不同的文件中读取属性,这样您就可以拥有
<property file="build.properties"/>
<property file="build.properties.part2"/>
等等。 在Ant中,属性的第一个值集 - 属性是悄然不可变的。 因此,如果你有:
<property name="my.prop" value="one" />
在第一个文件中的某个地方
<property name="my.prop" value="two" />
稍后 - 也许在第二个文件中,属性在构建期间将具有值“1”。
最新版本的一个特性是属性可以本地化到执行块 - 这可以让你“绕过”不变性。 这是一个直接从Ant 本地任务的文档中提取的示例:
<property name="foo" value="foo"/>
<target name="step1">
<echo>Before local: foo is ${foo}</echo>
<local name="foo"/>
<property name="foo" value="bar"/>
<echo>After local: foo is ${foo}</echo>
</target>
<target name="step2" depends="step1">
<echo>In step2: foo is ${foo}</echo>
</target>
输出
step1:
[echo] Before local: foo is foo
[echo] After local: foo is bar
step2:
[echo] In step2: foo is foo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.