假设这是我的代码。buildJar是我的macrodef。
<target name="build">
<buildJar build.dir="module1"/>
<buildJar build.dir="module2"/>
</target>
如何根据某些条件调用macrodef"buildJar"?例如,上面的代码可以是:
<target name="build">
<if module="module1" >
<buildJar build.dir="module1"/>
</if>
<if module="module2" >
<buildJar build.dir="module2"/>
</if>
</target>
Ant支持if和excess属性。这些可以与使用可用任务的目录检查相结合:
<project name="demo" default="build" xmlns:if="ant:if">
<macrodef name="greeting">
<attribute name="name"/>
<sequential>
<echo message="found @{name}"/>
</sequential>
</macrodef>
<available property="found.module1" file="module1"/>
<available property="found.module2" file="module2"/>
<target name="build">
<greeting name="module1" if:true="${found.module1}"/>
<greeting name="module2" if:true="${found.module2}"/>
</target>
</project>