Ant属性文件可以定义继承吗?

时间:2011-06-21 01:03:25

标签: inheritance ant

我想使用Ant属性文件,以便一个属性文件从另一个继承,但我不确定是否可能。

例如:

base.properties:
prop1=base

child.properties (inherit from base.properties):
prop1=child // this should override prop1 in base.properties

我知道我可以通过cmd行以正确的顺序传递它们以实现这一点,但我希望通过在文件本身中定义继承来实现它。

知道如何实现这一目标吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

Ant属性是不可变的。如果首先加载child.properties,将使用其中的所有属性定义而不是base.properties。

这也是命令行覆盖工作的原因。

因此,按照从子级到父级的顺序加载文件,您将有一些相似的层次结构。

答案 1 :(得分:2)

核心Ant不支持您所寻找的内容。

典型的模式是以级联方式加载构建文件中的属性,例如:

<property file="${user.home}/${product}/${product.version}/build.properties"/>
<property file="${user.home}/${product}/build.properties"/>
<property file="${user.home}/build.properties"/>
<property file="build.properties"/>

文件并不都需要存在。确实存在哪个文件按此顺序加载。这提供了有选择地覆盖属性的简单方法。