it-swarm-pt.tech

Maven pode ser feito menos verboso?

Maven lança muitas linhas de saída para o meu gosto (eu gosto do jeito Unix: nenhuma notícia é boa).

Eu quero me livrar de todas as linhas [INFO], mas não consegui encontrar nenhuma menção a um argumento ou configurações de configuração que controla a verbosidade do Maven.

Não existe uma maneira semelhante a LOG4J para definir o nível de log?

82
Asaf Bartov

Você pode tentar a opção -q .

-q, - quiet Quiet output - mostra apenas erros

103
Jorge Ferreira

-q como dito acima é o que você precisa. Uma alternativa poderia ser 

-B , --batch-mode Executar no modo não interativo (lote) O modo em lote é essencial se você precisar executar o Maven em um ambiente de integração contínua não interativo. Ao executar no modo não interativo, o Maven nunca parará para aceitar a entrada do usuário. Em vez disso, usará valores padrão sensatos quando precisar de entrada.

E também reduzirá as mensagens de saída mais ou menos ao essencial.

20
Stanislav

Use as opções de linha de comandos -q ou --quiet

6
Sietse

Link oficial: https://maven.Apache.org/maven-logging.html

Você pode adicionar os parâmetrosJVM:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Cuidado com o UPPERCASE.

5
jgrtalk

A resposta existente ajuda você a filtrar com base no nível de log usando --quiet. Descobri que muitas mensagens INFO são úteis para depuração, no entanto, as mensagens de log de artefatos de download, como as seguintes, eram ruidosas e não eram úteis.

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

Eu encontrei esta solução:

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
0
errant.info

Maven 3.1.x usa o SLF4j para logar, você pode encontrar instruções de como configurá-lo em https://maven.Apache.org/maven-logging.html

Resumindo: modifique ${MAVEN_HOME}/conf/logging/simplelogger.properties ou defina as mesmas propriedades através da variável de ambiente MAVEN_OPTS.

Por exemplo: a configuração de MAVEN_OPTS para -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn configura o registro do ouvinte de transferência em modo em lote e -Dorg.slf4j.simpleLogger.defaultLogLevel=warn define o nível de registro padrão.

0
ankon

Se você quiser apenas se livrar das mensagens [INFO], você também pode fazer:

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

Para suprimir all outputs (exceto erros) você pode redirecionar stdout para /dev/null com:

mvn ... 1>/dev/null

(Isso só funciona se você usar bash (ou shells similares) para executar os comandos do Maven.)

0
m13r

Meu problema é que -q é muito quieto. Eu estou correndo maven sob CI

Com Maven 3.6.1 (abril de 2019) , agora você tem uma opção para suprimir o progresso da transferência ao fazer o download/upload no modo interativo .

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

ou em resumo:

mvn -ntp ... ....

Isso é o que Ray proposto nos comentários com MNG-6605 e PR 239 .

0
VonC