Я хочу, чтобы maven отображал сообщения INFO, я хочу видеть только ПРЕДУПРЕЖДЕНИЯ И ОШИБКИ (если есть).
Как я могу достичь этого, предпочтительно, изменив командную строку, которая вызывает maven?
Я хочу, чтобы maven отображал сообщения INFO, я хочу видеть только ПРЕДУПРЕЖДЕНИЯ И ОШИБКИ (если есть).
Как я могу достичь этого, предпочтительно, изменив командную строку, которая вызывает maven?
Запуск maven с параметром -q или --quiet показывает только ошибки. Я не знаю настройки, в которой также отображаются предупреждения, но нет уровня информации.
Я сделал небольшое исследование, потому что меня также интересует решение.
В настоящее время 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
.
mvn validate clean install | egrep -v "(^\[INFO\])"
или
mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
Вы можете добиться этого с помощью MAVEN_OPTS, например,
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Вместо того, чтобы вводить системное свойство непосредственно в командной строке. (По крайней мере, для maven 3.3.1.)
Рассмотрите возможность использования ~/.mavenrc
для установки MAVEN_OPTS
, если вы хотите, чтобы регистрация была изменена для вашего входа во все вызовы maven.
Если вы используете 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>
К сожалению, даже с 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
Самый простой способ - перейти на 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.
Я заметил, что при использовании версии 2.20.1 плагина maven sunfire все предупреждения записываются в файл dumpstream. например /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream