在我们公司的CI机器专家中,每次构建之前都会清除本地存储库。因此,我的构建日志总是有一堆这样的噪音

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

是否有一个选项,我能够禁用下载进度指示?


当前回答

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

MVN—no-transfer-progress ....

简而言之:

mvn -NTP

完整的发布说明可以在这里找到:http://maven.apache.org/docs/3.6.1/release-notes.html

其他回答

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

MVN—no-transfer-progress ....

简而言之:

mvn -NTP

完整的发布说明可以在这里找到:http://maven.apache.org/docs/3.6.1/release-notes.html

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

如果你也想摆脱“下载/下载”行,你可以设置相应的日志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及以上版本。

抑制下载/下载邮件的唯一有效方法如下:

mvn --batch-mode ... bla bla bla ... | grep -v 'Download.* http'

这是唯一有用的方法,因为它不会压制任何其他东西,即上载/上传[INFO]消息,任何正常思维的人都会想要保留。

mvn -B ..或者MVN——批处理模式……会成功的。

更新

关于批处理模式的文档请参见https://maven.apache.org/ref/3.6.1/maven-embedder/cli.html 从Maven 3.6.1(发布于2019-04-04)开始,您可以使用——no-transfer-progress将完全抑制下载消息的输出,而不会抑制其他输出。

我使用的是apache-maven-3.8.6。添加——no-transfer-progress选项mvn为我工作:

MVN -no-transfer-progress清洁安装