Maven喷出了太多的输出行,以我的口味(我喜欢Unix的方式:没有新闻就是好消息)。
我想摆脱所有[INFO]行,但是找不到控制Maven冗长性的参数或配置设置。
是否没有类似LOG4J的方式来设置日志级别?
Maven喷出了太多的输出行,以我的口味(我喜欢Unix的方式:没有新闻就是好消息)。
我想摆脱所有[INFO]行,但是找不到控制Maven冗长性的参数或配置设置。
是否没有类似LOG4J的方式来设置日志级别?
Answers:
您可以尝试-q开关。
-q,-quiet安静的输出-仅显示错误
-q
太安静了。我正在CI下运行Maven,我想查看它所采取的步骤(以跟踪进度),但是下载指示器使非ANSI显示混乱。有没有办法只关闭下载进度指示器?
-B
启用批处理模式(无论如何,您都应在CI系统中使用该模式!),然后设置MAVEN_OPTS="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
为取消下载进度信息。
--batch-mode
(-B
)-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
才能起作用。
如上所述,-q是您所需要的。另一种可能是
-B,-- batch-mode 在非交互式(批处理)模式下运行如果需要在非交互式连续集成环境中运行Maven,则批处理模式至关重要。在非交互模式下运行时,Maven将永不停止接受来自用户的输入。相反,当需要输入时,它将使用合理的默认值。
并且还将或多或少地减少输出消息的要领。
官方链接:https : //maven.apache.org/maven-logging.html
您可以添加JVM参数:
-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.cli.transfer.Slf4jMavenTransferListener=warn
配置批处理模式传输侦听-Dorg.slf4j.simpleLogger.defaultLogLevel=warn
器的日志记录,并设置默认日志级别。
现有答案可帮助您使用进行基于日志级别的过滤--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
mvn --no-transfer-progress ...
(或简称mvn -ntp
为短裤)应该是一个适当的解决方案。请参阅下面的答案。