Как изменить уровень регистрации maven для отображения только предупреждений и ошибок?

Я хочу, чтобы maven отображал сообщения INFO, я хочу видеть только ПРЕДУПРЕЖДЕНИЯ И ОШИБКИ (если есть).

Как я могу достичь этого, предпочтительно, изменив командную строку, которая вызывает maven?

Ответ 1

Запуск maven с параметром -q или --quiet показывает только ошибки. Я не знаю настройки, в которой также отображаются предупреждения, но нет уровня информации.

Ответ 2

Отвечая на ваш вопрос

Я сделал небольшое исследование, потому что меня также интересует решение.

Опции расширенной командной строки Maven

Согласно http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option

  • -e для ошибки
  • -X для отладки
  • -q только для ошибки

Файл конфигурации журнала Maven

В настоящее время maven 3.1.x использует SLF4J для входа в System.out. Вы можете изменить параметры ведения журнала в файле:

${MAVEN_HOME}/conf/logging/simplelogger.properties

В соответствии со страницей: http://maven.apache.org/maven-logging.html

Настройка командной строки

Я думаю, что вы должны иметь возможность настроить уровень журнала по умолчанию для простого регистратора с помощью параметра командной строки, например:

$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug

Но Я не мог заставить его работать. Я предполагаю, что единственная проблема с этим - maven получает уровень по умолчанию из файла конфигурации в пути к классам. Я также попробовал несколько других настроек с помощью System.properties, но все они не увенчались успехом.

Приложение

Здесь вы можете найти источник slf4j на github: slf4j github

Источником простого регистратора здесь: slf4j/jcl-over-slf4j/src/main/java/org/apache/commons/logging/impl/SimpleLog.java

Загрузчик сплетения загружает simplelogger.properties.

Ответ 3

Linux:

mvn validate clean install | egrep -v "(^\[INFO\])"

или

mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"

Окна:

mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"

Ответ 4

Вы можете добиться этого с помощью MAVEN_OPTS, например, MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean

Вместо того, чтобы вводить системное свойство непосредственно в командной строке. (По крайней мере, для maven 3.3.1.)

Рассмотрите возможность использования ~/.mavenrc для установки MAVEN_OPTS, если вы хотите, чтобы регистрация была изменена для вашего входа во все вызовы maven.

Ответ 5

Если вы используете Logback, просто поместите этот logback-test.xml файл в каталог src/test/resources:

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<root level="INFO">
    <appender-ref ref="STDOUT" />
</root>
</configuration>

Ответ 6

К сожалению, даже с maven 3 единственный способ сделать это - исправить исходный код.

Вот краткая инструкция, как это сделать.

Клон или fork Maven 3 repo: "git clone https://github.com/apache/maven-3.git"

Измените log. org.apache.maven.cli.MavenCli # и измените

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );

к

cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );

В текущей версии моментального снимка она по строке 270

Затем просто запустите "mvn install", ваш новый дистрибутив maven будет находиться в папке "apache-maven\target"

См. этот diff для справки: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131

Ответ 7

Самый простой способ - перейти на Maven 3.3.1 или выше, чтобы воспользоваться поддержкой ${maven.projectBasedir}/.mvn/jvm.config.

Затем вы можете использовать любые параметры из поддержки Maven SL4FJ SimpleLogger для настройки всех регистраторов или отдельных регистраторов. Например, вот как сделать все предупреждения на уровне warn, за исключением PMD, который настроен для регистрации на error:

cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error

Смотрите здесь для получения дополнительной информации о входе в систему с Maven.

Ответ 8

Я заметил, что при использовании версии 2.20.1 плагина maven sunfire все предупреждения записываются в файл dumpstream. например /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream