it-swarm.cn

Maven可以减少冗长吗?

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

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

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

86
Asaf Bartov

您可以尝试使用 -q switch。

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

109
Jorge Ferreira

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

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

并且还会将输出消息或多或少地减少到要领。

23
Stanislav

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

6
Sietse

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

你可以添加 _ jvm _ 参数:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

小心大写。

6
jgrtalk

现有答案可帮助您使用--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
0
errant.info

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设置默认日志级别。

0
ankon

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

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

要抑制 all outputs(错误除外),您可以将stdout重定向到/dev/null

mvn ... 1>/dev/null

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

0
m13r

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

使用 Maven 3。3。1(2019年4月) ,您现在有一个 选项可以在交互模式下下载/上传时禁止传输进度

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

或简而言之:

mvn -ntp ... ....

这就是 Ray 建议 在评论中MNG-6605PR 239

0
VonC