【问题标题】:How to make javac compiler write the output to both file and console?如何让 javac 编译器将输出写入文件和控制台?
【发布时间】:2009-08-05 21:55:07
【问题描述】:

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

有没有办法做到这一点?

【问题讨论】:

    标签: ant javac


    【解决方案1】:

    刚刚遇到另一个使用记录器任务的替代方法。 更接近,因为您不必引入新目标。

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

    【讨论】:

    • &lt;compile&gt;标签是什么意思?
    【解决方案2】:

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

    例如

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

    【讨论】:

      【解决方案3】:

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

      >myprocess.sh | tee myprocess.log
      

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

      【讨论】:

      • 我知道如何在命令行中做到这一点。我的问题是如何从 ant 做到这一点?
      猜你喜欢
      • 1970-01-01
      • 2017-09-30
      • 2020-04-10
      • 2012-12-18
      • 2023-03-16
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多