Ant の target に指定する depends 属性の挙動について。
ターゲットの指定順
ターゲットは指定した順番で実行される。以下の場合、-c
-b
-a
の順に実行される。
<project> <target name="main" depends="-c,-b,-a"> <echo message="main done."/> </target> <target name="-a"> <echo message="-a done."/> </target> <target name="-b"> <echo message="-b done."/> </target> <target name="-c"> <echo message="-c done."/> </target> </project>
同じターゲットを複数指定した場合
ターゲットは1回だけ実行される。以下の場合、-a
が3回実行されるわけではない。
<project> <target name="main" depends="-a,-a,-a"> <echo message="main done."/> </target> <target name="-a"> <echo message="-a done."/> </target> <target name="-b"> <echo message="-b done."/> </target> <target name="-c"> <echo message="-c done."/> </target> </project>
同じターゲットに依存するターゲット同士を指定した場合
最初のターゲットが実行されるときのみ、依存するターゲットが実行される。以下の場合、-b
の前に -a
が実行されるが、-c
の前に -a
が再度実行されるわけではない。
<project> <target name="main" depends="-b,-c"> <echo message="main done."/> </target> <target name="-a"> <echo message="-a done."/> </target> <target name="-b" depends="-a"> <echo message="-b done."/> </target> <target name="-c" depends="-a"> <echo message="-c done."/> </target> </project>