0

我正在尝试制作一个在其他两个目标之一完成时运行的 Ant 目标。基本上,假设我有三个目标 A1、A2 和 B,我希望 B 只有在 A1 OR A2 运行时才运行。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 回答