如何在 ant 脚本的 for 循环中更改 outputproperty 的值以进行执行测试
How to change value of outputproperty in a for loop in ant script for an exec tast
我正在尝试更新 ant 脚本,我想在 outputproperty 和 exec 任务中获得新的输出。下面是我的 ant 脚本。
<target name="print_process_list">
<echo message="print_process_list start"/>
<echo message="${compile_project_lists} "/>
<echo message="print_process_list end"/>
</target>
<target name="buildall" depends="print_process_list">
<ac:for list="${compile_project_lists}" param="iprocess">
<sequential>
<exec executable="./ant_xml_pars.sh" outputproperty="ant_parstout" failonerror="false" >
<arg value="@{iprocess}"/>
</exec>
<echo message="${ant_parstout} " />
</sequential>
</ac:for>
ant_xml_pars.sh 根据从列表传递的 iprocess 给出输出。
ant_parstout 获取第一次迭代输出。但它的值在循环中的后续迭代中不会改变。
我的要求是根据作为参数传递的过程在 ant_parstout 中获取输出。
我尝试了 macrodef 但没有成功。
我建议阅读 ant-contrib documentation and use the variable 任务而不是 ANT 属性。
ANT 不是一种编程语言,事实证明 ANT 中的属性是 immutable. To work around these limitations some people use the ant-contrib ANT 的扩展,添加了 "for" 等任务。我个人更喜欢在 ANT 中嵌入脚本,而不是尝试在 XML...
中编写循环
示例嵌入 groovy 脚本:
- Map a list of strings to a collection of file resources for a dependset
这个post有点老了,但我刚遇到同样的问题,所以我是这样做的:
<target name="print_process_list">
<echo message="print_process_list start"/>
<echo message="${compile_project_lists} "/>
<echo message="print_process_list end"/>
</target>
<target name="buildall" depends="print_process_list">
<ac:for list="${compile_project_lists}" param="iprocess">
<sequential>
<exec executable="./ant_xml_pars.sh" outputproperty="ant_parstout.@{iprocess}" failonerror="false" >
<arg value="@{iprocess}"/>
</exec>
<echo message="${ant_parstout.@{iprocess}} " />
</sequential>
</ac:for>
我正在尝试更新 ant 脚本,我想在 outputproperty 和 exec 任务中获得新的输出。下面是我的 ant 脚本。
<target name="print_process_list">
<echo message="print_process_list start"/>
<echo message="${compile_project_lists} "/>
<echo message="print_process_list end"/>
</target>
<target name="buildall" depends="print_process_list">
<ac:for list="${compile_project_lists}" param="iprocess">
<sequential>
<exec executable="./ant_xml_pars.sh" outputproperty="ant_parstout" failonerror="false" >
<arg value="@{iprocess}"/>
</exec>
<echo message="${ant_parstout} " />
</sequential>
</ac:for>
ant_xml_pars.sh 根据从列表传递的 iprocess 给出输出。 ant_parstout 获取第一次迭代输出。但它的值在循环中的后续迭代中不会改变。 我的要求是根据作为参数传递的过程在 ant_parstout 中获取输出。 我尝试了 macrodef 但没有成功。
我建议阅读 ant-contrib documentation and use the variable 任务而不是 ANT 属性。
ANT 不是一种编程语言,事实证明 ANT 中的属性是 immutable. To work around these limitations some people use the ant-contrib ANT 的扩展,添加了 "for" 等任务。我个人更喜欢在 ANT 中嵌入脚本,而不是尝试在 XML...
中编写循环示例嵌入 groovy 脚本:
- Map a list of strings to a collection of file resources for a dependset
这个post有点老了,但我刚遇到同样的问题,所以我是这样做的:
<target name="print_process_list">
<echo message="print_process_list start"/>
<echo message="${compile_project_lists} "/>
<echo message="print_process_list end"/>
</target>
<target name="buildall" depends="print_process_list">
<ac:for list="${compile_project_lists}" param="iprocess">
<sequential>
<exec executable="./ant_xml_pars.sh" outputproperty="ant_parstout.@{iprocess}" failonerror="false" >
<arg value="@{iprocess}"/>
</exec>
<echo message="${ant_parstout.@{iprocess}} " />
</sequential>
</ac:for>