Ant执行超时不会终止任务

时间:2014-06-20 09:30:30

标签: ant timeout exec

我正在使用以下ant任务:

<target name="task">
    <exec executable="grunt.cmd" dir="adir" failonerror="true" timeout="1000">      
        <arg value="test" />
        <arg value="-v" />
    </exec>     
</target>

我希望ant任务在一秒钟后终止。但它不会影响任何变化。任务贯穿始终。完成任务后,将出现以下消息:

  

超时:杀死子流程

但是超时被完全忽略了。

关于这个问题的任何想法?

1 个答案:

答案 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>