Maven可以减少冗长吗?

Asa*_*tov 95 verbosity maven output

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

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

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

Jor*_*ira 120

你可以试试-q开关.

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

  • 我的问题是`-q`太安静了.我在CI下运行maven,我想看到它所采取的步骤(跟踪进度),但是下载指标使得非ANSI显示混乱.有没有办法只关闭下载进度指标? (6认同)
  • @Guss:如果您只希望下载/下载消息消失,请使用`-B`启用批处理模式(无论如何您应该在CI系统中使用它!),然后设置`MAVEN_OPTS =" - Dorg.slf4j. simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener =警告"`删除下载的进度信息. (5认同)
  • @sheki:为澄清起见,此选项不会禁用记录器调试消息-您需要通过记录器设置将其关闭。例如,如果使用的是logback,则在项目中包含src / test / resources / logback-test.xml文件将使您可以在测试阶段将日志记录级别自定义为“关闭”。这将清理所有内容。 (2认同)
  • 在 maven 3.5.x 中,我实际上需要为 `-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn` 技巧启用 `--batch-mode` (`-B`)上班。 (2认同)

Sta*_*lav 25

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

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

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

  • 选项-B似乎不会减少输出(已在版本3.3.9中进行测试)... (2认同)

jgr*_*alk 10

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

您可以添加JVM参数:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
Run Code Online (Sandbox Code Playgroud)

小心大写.


Von*_*onC 8

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

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

mvn --no-transfer-progress ....
Run Code Online (Sandbox Code Playgroud)

或简而言之:

mvn -ntp ... ....
Run Code Online (Sandbox Code Playgroud)

这就是提出的意见MNG-6605PR 239


Sie*_*tse 6

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


m13*_*13r 6

如果您只想删除这些[INFO]消息,您也可以这样做:

mvn ... | fgrep -v "[INFO]"
Run Code Online (Sandbox Code Playgroud)

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

mvn ... 1>/dev/null
Run Code Online (Sandbox Code Playgroud)

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