Может ли цель Ant зависеть от завершения одной из ее зависимостей, но не от обеих?
Я пытаюсь сделать цель Ant, которая будет работать, если завершится ОДНА из двух других целей. По сути, предполагая, что у меня есть три цели: А1, А2 и В, я хочу, чтобы Б запускалась только при запуске А1 ИЛИ А2. A1 и A2 зависят от условия, поэтому будут работать либо A1, либо A2 (но никогда оба).
Например:
<target name="A1" if="${conditionalVar}">
<target name="A2" unless="${conditionalVar}">
<target name="B" depends="????????">
Какой должна быть зависимость от цели B? Есть какой-либо способ сделать это?
1 ответ
Да, такая конфигурация возможна и не очень сложна:
Хитрость заключается в том, чтобы установить свойство, которое будет проверяться, если оно установлено (например, называть его "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" или нет.