Ant目标能否依赖于它的一个依赖项的完成,但不能同时依赖于这两个依赖项?

Ant目标能否依赖于它的一个依赖项的完成,但不能同时依赖于这两个依赖项?,ant,depends,Ant,Depends,我试图创建一个Ant目标,如果其他两个目标中的一个完成,它就会运行。基本上,假设我有三个目标A1、A2和B,我希望B只在A1或A2运行时运行。A1和A2取决于条件,因此A1或A2将运行(但决不能同时运行) 例如: <target name="A1" if="${conditionalVar}"> <target name="A2" unless="${conditionalVar}"> <target name="B" depends="????????">

我试图创建一个Ant目标,如果其他两个目标中的一个完成,它就会运行。基本上,假设我有三个目标A1、A2和B,我希望B只在A1或A2运行时运行。A1和A2取决于条件,因此A1或A2将运行(但决不能同时运行)

例如:

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


目标B的“依赖”应该是什么?是否还有其他方法可以这样做?

是的,这样的配置是可能的,并且不是很复杂:

诀窍是设置一个属性,该属性在设置时将被测试(例如,将其称为“taskA1.use”)



因此,即使B同时依赖于任务A1和A2,根据是否设置了属性“taskA1.use”,也只会执行一个任务。

是的,这样的配置是可能的,并且不是很复杂:

诀窍是设置一个属性,该属性在设置时将被测试(例如,将其称为“taskA1.use”)



因此,即使B同时依赖于任务A1和A2,根据是否设置了属性“taskA1.use”,也只会执行一个任务。

但是B同时依赖于A1和A2,所以不需要同时运行这两个任务来实现B吗?或者,即使设置了taskA1.use,A2是否也会“计算”为正在运行,因此A2不会运行其所有代码?在运行目标之前,会对该条件进行评估。因此,如果未设置
taskA1.use
,则A1将不会执行,也不会“计算为正在运行”。两个A1、A2目标都会被调用,由于属性条件的原因,只有一个目标实际执行。但B同时依赖于A1和A2,所以B不必同时运行才能发生吗?或者,即使设置了taskA1.use,A2是否也会“计算”为正在运行,因此A2不会运行其所有代码?在运行目标之前,会对该条件进行评估。因此,如果未设置
taskA1.use
,则A1不会执行,也不会“计算为正在运行”。两个A1、A2目标都被调用,由于属性条件的原因,只有一个目标实际执行。
<target name="A1" if="taskA1.use" />
<target name="A2" unless="taskA1.use" />
<target name="B" depends="A1,A2" />