ant的target使用depends属性指明对其它target的依赖。可以依赖多个target,被依赖的多个target之间用逗号分隔。
ant会确保被依赖的target首先执行,然后再执行本target。
ant尽量按照depends属性中指明的target出现的顺序来执行(从左到右),但也可能被依赖的某个target先执行(如果更早的target依赖于这个target的话)。
例如,下面的示例中,名字为deploy的target依赖于另外两个target,分别是deploy-tomcat和deploy-appserver,那么deploy-tomcat 和 deploy-appserver这两个target一定会在deploy这个target之前执行:
<target name="deploy" depends="deploy-tomcat, deploy-appserver"/>
<target name="deploy-appserver" unless="tomcat">
<copy file="${build.war.home}/jaxws-${ant.project.name}.war"
todir="${as.home}/domains/${domain}/autodeploy"/>
</target>
<target name="deploy-tomcat" if="tomcat">
<copy file="${build.war.home}/jaxws-${ant.project.name}.war"
todir="${env.CATALINA_HOME}/webapps"/>
</target>
再例如,下面的target有这样的依赖关系
<target name="t1"/>
<target name="t2", depends="t5"/>
<target name="t3", depends="t4,t5"/>
<target name="t4"/>
<target name="t5"/>
执行顺序应该为t1->t5->t2->t4->t3