【发布时间】:2011-12-08 05:36:17
【问题描述】:
在我的 selenium 网格设置中,我最初必须执行 2 个模块,这将创建数据。然后,并行休息6个模块。 我在 build.xml 中有 8 个不同模块的 8 个目标。我必须让所有 6 个目标等待最初的 2 个目标完成。 1. 如何让 ant 目标等待其余两个目标完成执行? 2.如果我将build.xml分成2个build.xmls,哪个命令让2个构建文件顺序运行?
【问题讨论】:
在我的 selenium 网格设置中,我最初必须执行 2 个模块,这将创建数据。然后,并行休息6个模块。 我在 build.xml 中有 8 个不同模块的 8 个目标。我必须让所有 6 个目标等待最初的 2 个目标完成。 1. 如何让 ant 目标等待其余两个目标完成执行? 2.如果我将build.xml分成2个build.xmls,哪个命令让2个构建文件顺序运行?
【问题讨论】:
如果我正确理解您的问题,您希望最初的两个模块并行执行,然后其余六个并行执行。有点像:
Time
| InitialModule1 InitialModule2
| | |
| . |
| |
| .
| Module3 Module4 Module5 Module6 Module7 Module8
| | | | | | |
| v v v v v v
V
如果每个模块都由其自己的 Ant 任务运行:task_one, task_two ... task_eight,您可以使用 Ant 目标依赖项和 parallel task 来执行此操作。目标依赖指定执行顺序,例如:
<target name="create_data">
<parallel>
<task_one ... />
<task_two ... />
</parallel>
</target>
<target name="do_work" depends="create_data">
<parallel>
<task_three ... />
.
.
.
<task_eight ... />
</parallel>
</target>
如果每个 Selenium 网格模块由一系列任务而不是单个任务运行,您可以将它们包装在 sequential 任务中。如果它们被实现为单独的目标,那么antcall 可能可以在parallel 任务中使用。
【讨论】:
使用 antcall ...
<project name="projectName" default="initialtarget1">
<target name="initialtarget1">
<....>
</....>
<antcall target="initialtarget2"/>
<antcall target="target1"/>
<antcall target="target2"/>
<antcall target="target3"/>
<antcall target="target4"/>
</target>
<target name="initialtarget2">
</target>
<target name="target1">
</target>
<target name="target2">
</target>
<target name="target3">
</target>
<target name="target4">
</target>
</project>
【讨论】: