Да, такая конфигурация возможна и не очень сложна:
Хитрость заключается в том, чтобы установить свойство, которое будет проверяться, если оно установлено (например, называть его «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" или нет.