【问题标题】:Getting a build logfile by maven通过 maven 获取构建日志文件
【发布时间】:2010-08-09 14:29:04
【问题描述】:

是否可以在不使用管道运算符的情况下获取 maven-build 过程的日志文件?我的意思是通常出现在控制台窗口中的输出:

[INFO] ------------------------------------------------------------------------
[INFO] Building base_project 01.00.000
[INFO] ------------------------------------------------------------------------
[WARNING] While downloading sun-javamail:mail:1.3.1
  This artifact has been relocated to javax.mail:mail:1.3.1.
  http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (CLEAN TARGET FOLDER)

我知道从 maven 更改输出级别的可能性,但不是在日志文件中获取此选项的选项。每次尝试通过 log4j.properties 文件完成这项工作都不适合我。我已经把它们放在了 src/main/resources 中的corporate-pom-project 以及 child-pom-projects 中。将文件包含到类路径和 maven-directory 似乎也不起作用。 无论如何,是否可以将 Maven 输出到具有指定调试级别的日志文件,最适合 log4j 配置。我认为这是可能的,但我尝试的任何方法似乎都不起作用。 有人对我这个问题有提示或答案吗?

提前致谢, tommyboy66

【问题讨论】:

    标签: maven-2 log4j


    【解决方案1】:

    在 Maven 2.x 中不支持,您必须将输出通过管道传输到文件中:

    mvn goal > build.log
    

    但在 Maven 3.x 中可能(MNG-4157MNG-3183):

     -l,--log-file <arg>                    Log file to where all build output
                                            will go.
    

    【讨论】:

    • 感谢您的回复,帕斯卡。我想知道,我也认为这是不可能的。 Maven 是一个非常棒的配置管理工具,但这确实是它的一个弱点。在我看来,拥有一个带有自定义输出的日志文件是构建过程的主要部分。 maven 也已经使用了 log4j。无论如何,我必须在 pipe-operator 上走得更远。
    • 不要忘记(如果您不在 Windows 上):mvn goal | tee build.log
    • 或者在 Windows 上你可以使用 cygwin 或 gnuwin32 来获取 tee(以及许多其他有用的东西)...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多