我试图执行目标"MyTarget",并得到一个错误:"不支持的元素回声"。也许Macrodef不是完成这项工作的方法。是否有其他方法将任务传递给具有不同参数的另一个目标/macrodef ?
<macrodef name="dotask">
<attribute name="platform" description="" />
<attribute name="config" description="" />
<element name="task2" optional="true" />
<sequential>
<task2 />
</sequential>
</macrodef>
<macrodef name="buildsuite2">
<element name="task" optional="true" />
<sequential>
<dotask platform="win32" config="debug">
<task />
</dotask>
<dotask platform="win32" config="release">
<task />
</dotask>
</sequential>
</macrodef>
<target name="MyTarget">
<buildsuite2>
<task>
<echo>${platform} ${config}</echo>
</task>
</buildsuite2>
</target>
如何使用不同的参数运行自定义任务几次?
是的,你可以在antcall任务的帮助下完成。
示例:<target name="method_impl">
<echo message="${firstParam}"/>
<echo message="${secondParam}"/>
</target>
<target name="test_calling_twice">
<echo message="First time call"/>
<antcall target="method_impl">
<param name="firstParam" value="fP1"/>
<param name="secondParam" value="sP1"/>
</antcall>
<echo message="Second time call"/>
<antcall target="method_impl">
<param name="firstParam" value="fP2"/>
<param name="secondParam" value="sP2"/>
</antcall>
</target>
输出将是:
第一次呼叫
fP1
sP1
第二次调用
fP2
sP2