2

だから... basedirからプロパティファイルをロードするbuild.xmlがあります。

次に、ターゲットとして次のことを実行します。

<var name="Var1" value="<property_from_**first**_loaded_property_file>" />
<var name="<property_from_**first**_loaded_property_file>" unset="true"/>
<property file="../<other directory>/<**second**_property_file>.properties" />
<var name="Var2" value="<property_from_**second**_loaded_property_file>"/>

ここで注意すべき点は、両方のプロパティ名が同じであることです。変更できません。

したがって、最終的には次のようなプロパティを取得する必要があります。

Var1=<property_from_**first**_loaded_property_file>

Var2=<property_from_**second**_loaded_property_file>

しかし代わりに、最初のプロパティ ファイルのプロパティ (Var1) が設定解除されておらず、2 番目のプロパティ ファイルから新しい値が入力されているという兆候が見られます。ant-contribs unset が対処すべきこと :/ ... 次のようなもの:

Var1 = Var2

期待した結果が得られないのはなぜですか?

4

3 に答える 3

0

既存のプロパティまたはユーザープロパティ(antコマンドライン
パラメーター-Dkey = valueで定義されたプロパティ)を上書きする必要がある場合は、antcontribの代わりにAntプラグインFlakaを使用できます。
Flakaのletタスクを使用すると、新しいプロパティを作成するか、既存のプロパティを簡単に上書きできます。

<project xmlns:fl="antlib:it.haefelinger.flaka">

 <property name="foo" value="bar"/>

 <!-- create new property -->
 <fl:let>foo := 'baar'</fl:let>
 <echo>$${foo} => ${foo}</echo>

 <!--
  overwrite existing property
  notice the double '::' in foo ::= 'baz'
 -->
 <fl:let>foo ::= 'baz'</fl:let>
 <echo>$${foo} => ${foo}</echo>

</project>
于 2012-01-31T20:15:09.020 に答える
0

値を設定解除することはできません。

WRONG: <var name="<property_from_**first**_loaded_property_file>" unset="true"/>

変数の設定を解除する必要があります

CORRECT: <var name="Var1" unset="true"/>
于 2012-01-25T15:27:21.080 に答える