Можно ли сделать Maven менее подробным?

Maven извергает слишком много линий вывода на мой вкус (мне нравится способ Unix: никаких новостей - хорошие новости).

Я хочу избавиться от всех [INFO] строк, но я не мог найти упоминания параметров аргумента или конфигурации, которые управляют многословием Maven.

Нет ли способа LOG4J для установки уровня журнала?

Ответ 1

Вы можете попробовать переключатель -q.

-q, - -q тихий тихий вывод - только показывать ошибки

Ответ 2

-q, как сказано выше, является тем, что вам нужно. Альтернативой может быть

-B, - пакетный режим Запуск в неинтерактивном (пакетном) режиме Пакетный режим необходим, если вам нужно запустить Maven в неинтерактивной, непрерывной среде интеграции. При запуске в неинтерактивном режиме Maven никогда не перестанет принимать входные данные от пользователя. Вместо этого он будет использовать разумные значения по умолчанию, когда он потребует ввода.

А также уменьшит выходные сообщения в большей или меньшей степени до необходимых.

Ответ 3

Используйте параметры командной строки -q или --quiet

Ответ 4

Официальная ссылка: https://maven.apache.org/maven-logging.html

Вы можете добавить в параметры JVM:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Остерегайтесь UPPERCASE.

Ответ 5

Maven 3.1.x использует SLF4j для ведения журнала, вы можете найти инструкции по его настройке в https://maven.apache.org/maven-logging.html

Короче: либо измените ${MAVEN_HOME}/conf/logging/simplelogger.properties, либо установите те же свойства с помощью переменной среды MAVEN_OPTS.

Например: установка MAVEN_OPTS в -Dorg.slf4j.simpleLogger.log.org.apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn настраивает ведение журнала прослушивателя передачи пакетного режима, а -Dorg.slf4j.simpleLogger.defaultLogLevel=warn устанавливает уровень журнала по умолчанию.

Ответ 6

Если вы хотите избавиться только от сообщений [INFO] вы также можете сделать:

mvn ... | fgrep -v "[INFO]"

Чтобы подавить все выходные данные (кроме ошибок), вы можете перенаправить стандартный stdout в /dev/null с помощью:

mvn ... 1>/dev/null

(Это работает, только если вы используете bash (или аналогичные оболочки) для запуска команд Maven.)

Ответ 7

Существующий ответ поможет вам --quiet фильтрацию на основе уровня журнала, используя --quiet. Я обнаружил, что многие сообщения INFO полезны для отладки, однако сообщения журнала загрузки артефактов, такие как следующие, были шумными и бесполезными.

Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml

Я нашел это решение:

https://blogs.itemis.com/en/in-a-nutshell-removing-artifact-messages-from-maven-log-output

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

Ответ 8

Моя проблема в том, что -q слишком тихий. Я бегу Maven под CI

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

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

или короче:

mvn -ntp ... ....

Это то, что Рэй предложил в комментариях к MNG-6605 и PR 239.