Maven可以减少冗长吗?

时间:2008-09-16 10:34:05

标签: maven output verbosity

Maven根据我的口味喷出了太多的输出线(我喜欢Unix方式:没有新闻是好消息)。

我想摆脱所有[INFO]行,但我找不到任何控制Maven详细程度的参数或配置设置。

是否没有类似LOG4J的方法来设置日志级别?

7 个答案:

答案 0 :(得分:109)

您可以尝试-q开关。

  

-q, - 安静静音输出 - 仅显示错误

答案 1 :(得分:23)

-q 如上所述是您所需要的。另一种选择可能是

-B - 批处理模式 以非交互(批处理)模式运行 如果需要在非交互式,持续集成环境中运行Maven,则批处理模式至关重要。在非交互模式下运行时,Maven将永远不会停止接受来自用户的输入。相反,它会在需要输入时使用合理的默认值。

并且还会将输出消息或多或少地减少到必需品。

答案 2 :(得分:6)

使用-q或--quiet命令行选项

答案 3 :(得分:6)

官方链接: https://maven.apache.org/maven-logging.html

您可以添加 JVM 参数:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

小心大写。

答案 4 :(得分:0)

Maven 3.1.x使用SLF4j进行日志记录,您可以在https://maven.apache.org/maven-logging.html找到有关如何配置它的说明

简而言之:修改${MAVEN_HOME}/conf/logging/simplelogger.properties,或通过MAVEN_OPTS环境变量设置相同的属性。

例如:将MAVEN_OPTS设置为-Dorg.slf4j.simpleLogger.log.org.apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn配置批处理模式传输侦听器的日志记录,-Dorg.slf4j.simpleLogger.defaultLogLevel=warn设置默认日志级别。

答案 5 :(得分:0)

现有答案可帮助您使用--quiet根据日志级别进行过滤。我发现许多INFO消息对于调试很有用,但是诸如以下内容的下载工件日志消息比较吵杂,没有帮助。

Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml

我找到了这个解决方案:

https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output

mvn clean install -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn

答案 6 :(得分:0)

  

我的问题是-q太安静了。我在CI下运行Maven

有了Maven 3.6.1 (April 2019),您现在有了选项,可以以交互方式下载/上传时抑制传输进度

mvn --no-transfer-progress ....
  

或简而言之:

mvn -ntp ... ....

这就是Rayin the commentsMNG-6605提出的PR 239