我正在使用以下ant任务:
<target name="task">
<exec executable="grunt.cmd" dir="adir" failonerror="true" timeout="1000">
<arg value="test" />
<arg value="-v" />
</exec>
</target>
我希望ant任务在一秒钟后终止。但它不会影响任何变化。任务贯穿始终。完成任务后,将出现以下消息:
超时:杀死子流程
但是超时被完全忽略了。
关于这个问题的任何想法?
答案 0 :(得分:1)
通常cmd文件通过<exec executable="cmd">
执行,同时尝试设置spawn属性,f.e:
<exec executable="cmd" dir="adir" failonerror="true" timeout="1000" spawn="true">
<arg value="/c"/>
<arg value="grunt.cmd"/>
<arg value="test"/>
<arg value="-v"/>
</exec>
否则ant会等待进程完成,因为它会收集stdout / stderr输出
或者使用:
<parallel threadcount="1" timeout="1000">
<exec executable="cmd" dir="adir" failonerror="true">
<arg value="/c"/>
<arg value="grunt.cmd"/>
<arg value="test"/>
<arg value="-v"/>
</exec>
</parallel>