How to redirect stdout stderr in an ant script?

微笑、不失礼 提交于 2019-12-05 20:08:00

问题


I am triggering an ant script (via cruise control), and would like to be able to dump the std out and std err for a particular ant target to a plain text file.

Yes, I am aware that cruise control already does maintain an XML log file containing this information (among many other things), but for portability reasons, I need this to happen from the ant script itself.

Is this possible, and if so, how to do it?

Many thanks!


回答1:


The recorder task may be able to do what you want:

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

Beyond that, certain tasks (exec, java, etc) offer this functionality by themselves (usually by means of output and error arguments)




回答2:


It's easy:

ant -logfile <logfile> <command>

And you can also say to ant shut up:

ant -q <command>

It worked fine to me.




回答3:


Try this:

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

stdouterr.txt will contain both stdout and stderr

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

stdout.txt and stderr.txt will contain stdout and stderr respectively

From my experience, the record task tends to fail when the ant script is run on cruise control, due to file access permissions (if someone can tell me how to fix that I'll be a happy man).

HTH



来源:https://stackoverflow.com/questions/1719201/how-to-redirect-stdout-stderr-in-an-ant-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!