відключити індикацію про хід завантаження 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

Чи є варіант, щоб я міг відключити індикацію про хід завантаження?

Відповіді:


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придушити вихід завантажуваних повідомлень зовсім, не придушуючи іншого виводу.

3
дякую, це зробили, чи можу я позбутися і завантаження / завантаження рядків?
gsf

Ви можете спробувати, mvn -qале іншого повідомлення також не побачите. Можливо, ви можете подивитися тут .
khmarbaise

1
mvn - пакетний режим ... | grep -v 'Завантажити. * http: //' - це те, що я іноді використовую для позбавлення від завантажуваних повідомлень *.
Lars Kiesow

Чи працює це для всіх версій Maven? Здається, у моєму випадку (версія 2.0.4) Maven все ще друкує некрасиві "завантажені ..." рядки незалежно від додавання прапора -B.
Каміль

3
@Barett надане вами посилання - це лише документація плагіна-релізу. Це зовсім не згадує, як --batch-modeвпливає на виробництво.
Супероле

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 і вище.


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.