Чтобы избежать использования antcall, вам нужно поставить условие в каждую из подзадач.Глядя на имя «skip.c», это, вероятно, условие «разве», например:
<target name="test" depends="a,b,c" />
<target name="a" depends="a1,a2,a3" />
<target name="b" depends="b1,b2,b3" />
<target name="c" depends="c1,c2,c3" />
<target name="c1" unless="skip.c">
<!-- contents of target c1 -->
</target>
<target name="c2" unless="skip.c">
<!-- contents of target c2 -->
</target>
<target name="c3" unless="skip.c">
<!-- contents of target c3 -->
</target>
Если вам нужно выполнить обработку условий в момент запуска задачи «c»Вы можете сделать это в целевом объекте "check_run_c" следующим образом:
<target name="test" depends="a,b,c" />
<target name="a" depends="a1,a2,a3" />
<target name="b" depends="b1,b2,b3" />
<target name="c" depends="check_run_c,c1,c2,c3" />
<target name="check_run_c">
<condition property="run.c">
<!-- set this property "run.c" if the "c*" targets should run... -->
<or>
<isset property="prop1"/>
<isset property="prop2"/>
</or>
</condition>
</target>
<target name="c1" if="run.c">
<!-- contents of target c1 -->
</target>
<target name="c2" if="run.c">
<!-- contents of target c2 -->
</target>
<target name="c3" if="run.c">
<!-- contents of target c3 -->
</target>
Если в задаче "c" есть также инструкции, которые вы хотите выполнить только условно:
<target name="test" depends="a,b,c" />
<target name="a" depends="a1,a2,a3" />
<target name="b" depends="b1,b2,b3" />
<target name="c" depends="check_run_c,c1,c2,c3" if="run.c" >
<!-- contents of target c -->
</target>
<target name="check_run_c">
<condition property="run.c">
<!-- set this property "run.c" if the "c*" targets should run... -->
<or>
<isset property="prop1"/>
<isset property="prop2"/>
</or>
</condition>
</target>
<target name="c1" if="run.c">
<!-- contents of target c1 -->
</target>
<target name="c2" if="run.c">
<!-- contents of target c2 -->
</target>
<target name="c3" if="run.c">
<!-- contents of target c3 -->
</target>