禁用maven下载进度指示

gsf*_*gsf 144 maven

在我们公司的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
Run Code Online (Sandbox Code Playgroud)

有没有选项我可以禁用下载进度指示?

khm*_*ise 207

mvn -B ..或者mvn --batch-mode ...会做的伎俩.

  • 问题是专门询问有关抑制下载噪音的问题,这对于 maven 来说非常冗长。我的观点是,您的解决方案有一个意想不到的副作用:它还会禁用部署插件中的上传日志,因此您无法看到您“真正”部署了工件的存储库 (4认同)
  • 谢谢,这样做了,我可以摆脱下载/下载的行吗? (3认同)
  • @Barett您提供的链接只是发行插件的文档。它根本没有提到“ --batch-mode”如何影响输出。 (2认同)

小智 65

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

如果您还想摆脱"下载/下载"行,您可以将相应的记录器设置为org.apache.maven.cli.transfer.Slf4jMavenTransferListener高于信息的级别.因此,我使用了此处org.slf4j.simpleLogger.log记录的属性.

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

mvn -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B ...
Run Code Online (Sandbox Code Playgroud)

或者您可以使用此处MAVEN_OPTS描述的环境变量:

export MAVEN_OPTS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
Run Code Online (Sandbox Code Playgroud)

注意:据我所知,这仅适用于maven 3.1及以上版本.

  • 这很棒.也可以将``org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener = warn``添加到$ MAVEN_HOME/conf/logging/simplelogging.properties,以使其永久化. (4认同)
  • 该解决方案会抑制上传消息和下载消息,这在“部署”任务中通常是不需要的 (3认同)

Ren*_*sen 9

从Maven 3.6.1开始,Maven现在具有在交互模式下下载/上传时抑制传输进度的选项。

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

或简而言之:

mvn -ntp ... ....

完整的发行说明可在以下位置找到:http : //maven.apache.org/docs/3.6.1/release-notes.html


ale*_*ung 8

与上面的答案相同,但您不需要每次都向命令行添加选项。只需将行添加到文件中${maven.projectBasedir}/.mvn/maven.config

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

然后您可以按mvn原样使用:

mvn test
mvn deploy
Run Code Online (Sandbox Code Playgroud)