отключить индикацию загрузки Maven

162

В нашей компании в машинах 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

Можно ли отключить индикацию хода загрузки?

GSF
источник

Ответы:

220

mvn -B ..или mvn --batch-mode ...сделает свое дело.

Обновить

  • Документацию о пакетном режиме см. Https://maven.apache.org/ref/3.6.1/maven-embedder/cli.html.
  • Начиная с Maven 3.6.1 (выпущен в 2019-04-04), который вы можете использовать, --no-transfer-progressвы подавите вывод загрузки сообщений вообще, не подавив другой вывод.
khmarbaise
источник
3
спасибо, это сделал, я могу избавиться от загрузки / загруженных строк тоже?
GSF
Вы можете попробовать, mvn -qно вы не увидите и другого сообщения. Может быть, вы можете посмотреть здесь .
Хмарбайз
1
mvn --batch-mode ... | grep -v 'Download. * http: //' - это то, что я иногда использую, чтобы избавиться от сообщений * о загрузке.
Ларс Кисов,
Работает ли он на всех версиях maven? Кажется, в моем случае (версия 2.0.4) maven по-прежнему печатает некрасивые строки "загружено ..." независимо от добавления флага -B.
Камил
3
@ Барет ссылка, которую вы предоставили, является только документацией к релизу-плагину. Совсем не упоминается, как --batch-modeвлияет на вывод.
Superole
71

Прежде всего, как уже ответил 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 ...

Или вы можете использовать MAVEN_OPTSпеременную окружения, как описано здесь :

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

Примечание: насколько мне известно, это работает только для Maven 3.1 и выше.

FelixRabe
источник
4
Это круто. Можно также добавить org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warnв $ MAVEN_HOME / conf / logging / simplelogging.properties, чтобы сделать его постоянным.
Бен
Это решение подавляет загрузку сообщений, а также загрузок, что обычно нежелательно в deployзадаче
Хиликус
Он устанавливает уровень WARN, так что вы все равно будете знать, есть ли проблема. Но я согласен, что было бы неплохо иметь отдельную настройку.
Оливье Жерардин
18

Начиная с Maven 3.6.1, Maven теперь имеет возможность подавлять процесс передачи при загрузке / выгрузке в интерактивном режиме.

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

или короче:

mvn -ntp ... ....

Полное примечание к выпуску можно найти здесь: http://maven.apache.org/docs/3.6.1/release-notes.html

Рене Ларсен
источник
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
bladekp
источник