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

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

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

有帮助吗?

解决方案

您可以尝试 -q 转变。

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

其他提示

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

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

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

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

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

您可以添加在 虚拟机 参数 :

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

当心大写。

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

如果你只想摆脱 [INFO] 您还可以执行以下操作:

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

压制 全部 您可以重定向的输出(错误除外) stdout/dev/null 和:

mvn ... 1>/dev/null

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

现有的答案可以帮助您根据日志级别进行过滤 --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

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

Maven 3.6.1(2019 年 4 月), ,你现在有一个 以交互模式下载/上传时抑制传输进度的选项.

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

或者简而言之:

mvn -ntp ... ....

就是这样 射线 建议的 在评论中MNG-6605公关 239.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top