如何在ant脚本中重定向stdout stderr?

时间:2009-11-12 01:02:28

标签: ant stdout cruisecontrol stderr

我正在触发一个蚂蚁脚本(通过巡航控制),并且希望能够将std out和std err 转移到特定蚂蚁目标普通的文本文件

是的,我知道巡航控制已经维护了包含此信息的XML日志文件(以及许多其他内容),但出于可移植性的原因,我需要从ant脚本本身发生这种情况。

这是可能的,如果是的话,怎么做?

非常感谢!

3 个答案:

答案 0 :(得分:10)

很简单:

ant -logfile <logfile> <command>

你也可以对蚂蚁说:

ant -q <command>

对我来说很好。

答案 1 :(得分:8)

recorder任务可以做你想做的事情:

<record name="log.txt" action="start"/>
...
<record name="log.txt" action="stop"/>

除此之外,某些任务(exec,java等)自己提供此功能(通常通过outputerror参数)

答案 2 :(得分:6)

试试这个:

<java classname="some.package.Class"
    fork="yes"
    output="stdouterr.txt">
    ...
</java>

stdouterr.txt将包含stdout和stderr

<java classname="some.package.Class"
    fork="yes"
    output="stdout.txt"
    error="stderr.txt">
    ...
</java>

stdout.txtstderr.txt将分别包含stdout和stderr

根据我的经验,当蚂蚁脚本在巡航控制上运行时,由于文件访问权限(如果有人可以告诉我如何修复我将是一个快乐的人),记录任务往往会失败。

HTH