0

他の 2 つのターゲットのいずれかが完了した場合に実行される Ant ターゲットを作成しようとしています。基本的に、A1、A2、および B の 3 つのターゲットがあると仮定すると、A1 または A2 が実行された場合にのみ B を実行する必要があります。A1 と A2 は条件に依存するため、A1 または A2 のいずれかが実行されます (ただし、両方が実行されることはありません)。

例えば:

<target name="A1" if="${conditionalVar}"> 
<target name="A2" unless="${conditionalVar}">
<target name="B" depends="????????">

ターゲット B の「依存」はどうあるべきですか? とにかくこれを行うことはありますか?

4

1 に答える 1

3

はい、そのような構成は可能であり、それほど複雑ではありません:

トリックは、設定されている場合にテストされるプロパティを設定することです (たとえば、「taskA1.use」と呼びます)。

<target name="A1" if="taskA1.use" />
<target name="A2" unless="taskA1.use" />
<target name="B" depends="A1,A2" />

したがって、B がタスク A1 と A2 の両方に依存している場合でも、プロパティ「taskA1.use」が設定されているかどうかに応じて、一方のみが実行されます。

于 2011-12-21T15:39:29.207 に答える