129

Maven 根据我的喜好喷出了太多的输出行(我喜欢 Unix 的方式:没有消息就是好消息)。

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

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

4

8 回答 8

160

你可以试试-q开关

-q,--quiet安静的输出 - 只显示错误

于 2008-09-16T10:37:40.910 回答
37

-q如上所述是你所需要的。一种替代方法可能是:

-B,--batch-mode 在非交互(批处理)模式下运行 如果需要在非交互、持续集成环境中运行 Maven,批处理模式是必不可少的。在非交互模式下运行时,Maven 将永远不会停止接受用户的输入。相反,它会在需要输入时使用合理的默认值。

并且还将或多或少地减少输出消息的本质。

于 2016-11-10T18:58:18.963 回答
30

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

使用Maven 3.6.1(2019 年 4 月),您现在可以选择在交互模式下下载/上传时抑制传输进度

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

或简而言之:

mvn -ntp ... ....

这就是Ray在MNG-6605PR 239的评论中提出的。

于 2019-05-13T18:43:22.133 回答
21

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

您可以添加JVM参数:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

小心大写。

于 2017-07-27T08:16:48.710 回答
7

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

于 2008-09-16T10:38:31.890 回答
3

如果您只想摆脱[INFO]消息,您也可以这样做:

mvn ... | fgrep -v "[INFO]"

要抑制所有输出(错误除外),您可以重定向stdout/dev/null

mvn ... 1>/dev/null

(这仅在您使用bash(或类似的 shell)运行 Maven 命令时才有效。)

于 2018-02-26T12:57:04.960 回答
1

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

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

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

于 2016-12-06T18:25:00.147 回答
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
于 2019-05-03T04:06:09.893 回答