2011-06-21 11 views
2

1つのプロパティファイルが別のプロパティファイルを継承するようなAntプロパティファイルを使用したいと思いますが、それが可能であるかどうかはわかりません。例えばAntプロパティファイルで継承を定義できますか?

base.properties: 
prop1=base 

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

私は私がこれをachiveする適切な順序で、CMDラインを介してそれらを渡すことができることを知っているが、私は、ファイルそのものの中に継承を定義することによって、それを達成するために願っています。

どのように私はこれを達成することができますか?

ありがとうございます!

答えて

2

Antプロパティは不変です。 child.propertiesを最初にロードすると、そこからすべてのプロパティ定義がbase.propertiesの代わりに使用されます。

これはコマンドラインオーバーライドが機能する理由です。

ファイルを子から親の順に読み込むと、階層の類似性があります。

+0

右。そのような場合は、プロパティファイルが正しく並べ替えられていれば、ベースは基本的にオーバーライドされます。ファイル内で定義されている継承に基づいてオーバーライドする方法はありますか? – glutz

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"/> 

ファイルすべてが存在する必要はありません。

典型的なパターンは、例えばこのようなものは、カスケード方式でビルドファイルにプロパティを読み込むことであろう。存在するファイルがその順序でロードされます。これにより、プロパティを選択的にオーバーライドする簡単な方法が得られます。

関連する問題