Maven可以不那么冗长吗?

Maven可以不那么冗长吗?,maven,output,verbosity,Maven,Output,Verbosity,Maven输出了太多符合我口味的输出行(我喜欢Unix的方式:没有消息就是好消息) 我想去掉所有的[INFO]行,但是我找不到任何关于控制Maven详细性的参数或配置设置的内容 没有类似LOG4J的方法来设置日志级别吗?您可以尝试 -q,安静输出-仅显示错误 使用-q或--quiet命令行选项,如上所述-q是您所需要的。另一种选择是: -B,-批处理模式 以非交互(批处理)模式运行 如果需要在非交互式、连续集成环境中运行Maven,批处理模式是必不可少的。在非交互模式下运行时,Maven永远不会

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

我想去掉所有的
[INFO]
行,但是我找不到任何关于控制Maven详细性的参数或配置设置的内容

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

您可以尝试

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


使用-q或--quiet命令行选项,如上所述-q是您所需要的。另一种选择是:

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


并且还将或多或少地将输出消息简化为基本信息。

Maven 3.1.x使用SLF4j进行日志记录,您可以在

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

例如:将
MAVEN_选项设置为
-Dorg.slf4j.simpleLogger.log.org.apache.MAVEN.cl‌​i、 transfer.Slf4jMave‌​nTransferListener=wa‌​rn
配置批处理模式传输侦听器的日志记录,并且
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn
设置默认日志级别。

官方链接:

您可以添加JVM参数:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

注意大写。

如果您只想删除
[INFO]
消息,还可以执行以下操作:

mvn…|fgrep-v“[信息]”
要抑制所有输出(错误除外),可以使用以下命令将标准输出重定向到
/dev/null

mvn。。。1> /dev/null

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

现有答案可帮助您使用
--quiet
根据日志级别进行筛选。我发现许多信息消息对于调试是有用的,但是下载工件日志消息(如下面的消息)很嘈杂,没有帮助

Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
我找到了这个解决方案:

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

使用,您现在有了一个选项,可以在以交互模式下载/上载时抑制传输进度

mvn --no-transfer-progress ....
简言之:


这就是和的建议。

@sheki:为了澄清,此选项不会禁用记录器调试消息-您需要通过记录器设置将其关闭。例如,如果您正在使用logback,在项目中包含src/test/resources/logback-test.xml文件将允许您在测试阶段将日志记录级别自定义为“off”。我的问题是
-q
太安静了。我在CI下运行maven,我希望看到它所采取的步骤(跟踪进度),但下载指示器正在弄乱非ANSI显示。有没有办法只关闭下载进度指示器?@Guss:如果您只想让下载/下载的消息消失,请使用
-B
启用批处理模式(无论如何,您的CI系统中应该有该模式!),然后设置
MAVEN\u OPTS=“-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn”
删除下载进度信息。在maven 3.5.x中,我实际上需要启用批处理模式(
-B
)对于
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
技巧,请使用。如果您愿意,我已经提交了一个与交互模式兼容的建议解决方案,它将用于非交互模式,这有助于使用maven 3.6.1(2019年4月,10多年后)自动运行,
mvn—无传输进度…
(或
mvn-ntp
,用于短消息)应该是一个合适的解决方案。请参阅。此解决方案禁止上载消息和下载,这在
部署任务中通常是不需要的
mvn --no-transfer-progress ....
mvn -ntp ... ....