Я хочу, чтобы 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