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

bgu*_*uiz 9 ant cruisecontrol stdout stderr

我触发ant脚本(通过巡航控制),并希望能够在std并STD ERR转储特定Ant目标到一个纯文本文件.

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

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

非常感谢!

Fel*_*ipe 10

这很简单:

ant -logfile <logfile> <command>
Run Code Online (Sandbox Code Playgroud)

你也可以对蚂蚁说:

ant -q <command>
Run Code Online (Sandbox Code Playgroud)

它对我很好.


Chs*_*y76 8

记录的任务也许可以做你想做的:

<record name="log.txt" action="start"/>
...
<record name="log.txt" action="stop"/>
Run Code Online (Sandbox Code Playgroud)

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


小智 6

试试这个:

<java classname="some.package.Class"
    fork="yes"
    output="stdouterr.txt">
    ...
</java>
Run Code Online (Sandbox Code Playgroud)

stdouterr.txt 将包含stdout和stderr

<java classname="some.package.Class"
    fork="yes"
    output="stdout.txt"
    error="stderr.txt">
    ...
</java>
Run Code Online (Sandbox Code Playgroud)

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

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

HTH