Quero impedir que o maven exiba mensagens INFO, quero ver apenas AVISOS e ERROS (se houver).
Como conseguir isso, de preferência alterando a linha de comando que chama de maven?
Quero impedir que o maven exiba mensagens INFO, quero ver apenas AVISOS e ERROS (se houver).
Como conseguir isso, de preferência alterando a linha de comando que chama de maven?
Respostas:
Fiz uma pequena investigação porque também estou interessado na solução.
De acordo com http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option
Atualmente o maven 3.1.x usa o SLF4J para fazer logon no System.out. Você pode modificar as configurações de log no arquivo:
${MAVEN_HOME}/conf/logging/simplelogger.properties
De acordo com a página: http://maven.apache.org/maven-logging.html
Eu acho que você deve ser capaz de configurar o nível de log padrão do logger simples por meio de um parâmetro de linha de comando, assim:
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
Mas não consegui fazê-lo funcionar . Eu acho que o único problema é que o maven pega o nível padrão no arquivo de configuração no caminho de classe. Também tentei algumas outras configurações via System.properties, mas todas elas não tiveram êxito.
Você pode encontrar a fonte do slf4j no github aqui: slf4j github
A fonte do simplelogger aqui: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / log / impl / SimpleLog.java
O carregador de plexo carrega o simplelogger.properties.
simplelogger.propertiesmudança funcionasse? Quando altero a org.slf4j.simpleLogger.warnLevelStringconfiguração, mvn compileatualizo-a adequadamente, mas parece estar ignorando a org.slf4j.simpleLogger.defaultLogLevelconfiguração. Ele também registra no nível de informações, mesmo quando eu defino isso como aviso ou erro.
mvn validate clean install | egrep -v "(^\[INFO\])"
ou
mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
findstrsuportes regex e outras opções que podem torná-lo mais sucinta - ss64.com/nt/findstr.html
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Você pode conseguir isso com MAVEN_OPTS, por exemplo
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Em vez de colocar a propriedade do sistema diretamente na linha de comando. (Pelo menos para o maven 3.3.1.)
Considere usar a opção ~/.mavenrcpara definir MAVEN_OPTSse você deseja alterar o registro para o seu login em todas as chamadas invocadas.
help:evaluatealvo para imprimir o valor de project.versione essa saída (embora não pareça ocorrer slf4j) também foi desativada.
Se você estiver usando o Logback, basta colocar este logback-test.xmlarquivo no src/test/resourcesdiretório:
<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>
você pode conseguir isso usando abaixo na própria linha de comando
-e for error
-X for debug
-q for only error
por exemplo :
mvn test -X -DsomeProperties='SomeValue' [For Debug level Logs]
mvn test -e -DsomeProperties='SomeValue' [For Error level Logs]
mvn test -q -DsomeProperties='SomeValue' [For Only Error Logs]
Infelizmente, mesmo com o maven 3, a única maneira de fazer isso é corrigir o código-fonte.
Aqui está uma breve instrução de como fazer isso.
Clone ou fork do repositório do Maven 3: "git clone https://github.com/apache/maven-3.git "
Edite o registro org.apache.maven.cli.MavenCli # e altere
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
para
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );
Na versão atual do instantâneo, está na linha 270
Em seguida, basta executar "mvn install", sua nova distribuição maven estará localizada na pasta "apache-maven \ target \"
Veja este diff para a referência: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
getLog()- se você puder viver com a configurabilidade.
A maneira mais simples é atualizar para o Maven 3.3.1 ou superior para aproveitar o ${maven.projectBasedir}/.mvn/jvm.configsuporte.
Em seguida, você pode usar qualquer opção do suporte ao SimpleLogger do SL4FJ do Maven para configurar todos os registradores ou registradores específicos. Por exemplo, aqui está um exemplo de como fazer todos os avisos no warnnível, exceto um PMD que está configurado para registrar em error:
cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
Veja aqui para mais detalhes sobre o registro no Maven.
Notei que ao usar a versão 2.20.1 do plug-in maven sunfire , todos os avisos são gravados em um arquivo dumpstream. por exemplo/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-modeou-qtornarámvnmenos detalhado.