如何让javac编译器将输出写入文件和控制台?

时间:2009-08-05 21:55:08

标签: ant javac

我正在使用 ant 运行javac任务,并使用 -Xstdout 编译器参数将输出发送到日志文件以进行报告,但是我希望输出仍然发送到控制台,所以哈德森可以捕获它以供屏幕查看。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:10)

刚刚使用录像机任务遇到了另一种选择。 更近,因为您不必引入新目标。

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

答案 1 :(得分:2)

使用带有output属性的ant任务来调用具有javac任务的目标。

e.g。

<target name="javac" depends="libs" description="Compile java source">
    <mkdir dir="${classes.dir}" />
    <ant target="actual-javac" output="javac.log"/>
</target>

<target name="actual-javac">
    <javac .../>
    </javac>
</target>

答案 2 :(得分:0)

您可以在命令行上的任何进程上使用tee输出到控制台和文件:

>myprocess.sh | tee myprocess.log

会将myprocess.sh的输出打印到控制台和myprocess.log。