我想使用Ant属性文件,以便一个属性文件从另一个继承,但我不确定是否可能。
例如:
base.properties:
prop1=base
child.properties (inherit from base.properties):
prop1=child // this should override prop1 in base.properties
我知道我可以通过cmd行以正确的顺序传递它们以实现这一点,但我希望通过在文件本身中定义继承来实现它。
知道如何实现这一目标吗?
谢谢!
答案 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"/>
文件并不都需要存在。确实存在哪个文件按此顺序加载。这提供了有选择地覆盖属性的简单方法。