2

私は1つのターゲットを持っています:

<target name="add_inner_class" >
    <property name="client.jar.classes"
              value="${client.class.jar.package.list}"/>
    <foreach list="${client.class.jar.package.list}"
             target="add_inner_class_list" param="outer_class"
             delimiter=" " inheritall="true" />
</target>

このターゲットは、2 番目のターゲットを呼び出します"add_inner_class_list"

2 番目のターゲットでは、呼び出し元のターゲットで定義されたプロパティ (つまり、という名前のプロパティ) を更新したいと考えていますclient.jar.classes。各呼び出しで、この値を保持し、必要に応じて更新する必要があります。

Antでこれを行うことができるのだろうか?

4

1 に答える 1

0

Antプロパティは immutableであるため、短い答えはノーです。それはできません。プロパティに値が設定されると、それを変更することはできません。ドキュメントからの引用:

プロパティは不変です。プロパティを最初に設定した人は誰でも、残りのビルドのためにそれをフリーズします。それらは間違いなく変数ではありません。

ただし、目的を達成するために使用できることがいくつかあります。1 つ目は Ant<local>タスクです。これにより、ターゲットの外部とは異なる値を持つ、ターゲットに対してローカルなプロパティのインスタンスを持つことができます。しかし、質問の詳細を見ると、プロパティではなく変数が必要なようです。値を自由に変更したいのです。すでに ant-contrib を使用しているので、なぜ ? を使用しないの<var>ですか? Ant-contrib 変数は可変であり、ほとんどの場合、Ant プロパティの代わりに直接使用できます。

于 2013-03-29T13:05:30.083 に答える