我试图用Ant做这个:
<property name="test" value="123"/>
<target name="helloworld" depends="${test}"/>
但我收到错误“此项目中不存在Target $ {test}。”
所以我猜我能做到这一点?
答案 0 :(得分:7)
您可以使用AntCall Task在另一个任务中调用任务。
<project>
<target name="asdf">
<property name="prop" value="qwer" />
<antcall target="${prop}" />
</target>
<target name="qwer">
<echo message="in qwer" />
</target>
</project>
要使一个人依赖另一个,您可以在从属任务中设置一个参数,并在您的调用任务中进行检查。
答案 1 :(得分:3)
您可以使用if属性检查属性,而不是依赖。有关详细信息,请参阅manual。
例如:
<target name="helloworld" if="test"/>
请注意,这仅检查属性是否已设置(您可以使用unless
检查是否已设置)。
另一种更复杂但更强大的方法是在依赖目标上使用嵌套条件:
<target name="helloworld" depends="myTarget.check" if="myTarget.run">
...
</target>
<target name="myTarget.check">
<condition property="test">
<and>
<available file="foo.txt"/>
<available file="bar.txt"/>
</and>
</condition>