禁用Maven下载进度指示


161

在我们公司的CI机器中,每次构建之前都会清除maven本地存储库。结果,我的构建日志总是有很多这样的噪音

Downloading: http://.../artifactory/repo/com/codahale/metrics/metrics-core/3.0.1/metrics-core-3.0.1.jar
4/2122 KB   
8/2122 KB   
12/2122 KB   
16/2122 KB   
18/2122 KB   
18/2122 KB   4/480 KB   
18/2122 KB   8/480 KB   
18/2122 KB   12/480 KB   
18/2122 KB   16/480 KB   
18/2122 KB   16/480 KB   4/1181 KB   
18/2122 KB   16/480 KB   8/1181 KB   
18/2122 KB   16/480 KB   12/1181 KB

是否有我可以禁用下载进度指示的选项?

Answers:


219

mvn -B ..mvn --batch-mode ...将达到目的。

更新资料


3
谢谢,这样做了,我也可以摆脱下载/下载的行吗?
gsf 2014年

您可以尝试,mvn -q但是比其他任何消息都看不到。也许你可以在这里看看。
khmarbaise 2014年

1
mvn-批处理模式... | 我有时会使用grep -v'Download。* http://'来摆脱download *消息。
拉尔斯·基索

它适用于所有版本的Maven吗?在我的情况下(版本2.0.4),无论是否添加-B标志,maven仍然打印难看的“ downloaded ...”行。
卡米尔

3
@Barett您提供的链接只是发行插件的文档。它完全没有提到如何--batch-mode影响输出。
Superole '18

71

首先,正如khmarbaise回答的那样,您应该使用mvn -B启用批处理模式。

如果您还希望摆脱“ Downloading / Downloaded”行,则可以将相应的记录器设置为org.apache.maven.cli.transfer.Slf4jMavenTransferListener高于info的级别。因此,我使用了此处org.slf4j.simpleLogger.log记录的属性

仅使用命令行,您可以执行以下操作:

mvn -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B ...

或者你可以使用MAVEN_OPTS环境变量描述在这里

export MAVEN_OPTS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn

注意:据我所知,这仅适用于maven 3.1及更高版本。


4
这很棒。也可以添加org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn到$ MAVEN_HOME / conf / logging / simplelogging.properties中,使其永久存在。
2016年

该解决方案可以抑制上传消息和下载消息,这在deploy任务中通常是不需要的
Hilikus

它将级别设置为WARN,因此您仍然会知道是否有问题。但我同意最好有一个单独的设置。
OlivierGérardin


0

快速解答,使用maven批处理模式,将以下内容添加到您的maven命令中:

-B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn

例如:

mvn deploy -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.