O Maven pode se tornar menos detalhado?
Pergunta
Maven vomita muitas linhas de saída ao meu gosto (eu gosto do jeito Unix:Nenhuma notícia é boa notícia).
Quero me livrar de todas as linhas [INFO], mas não consegui encontrar nenhuma menção a um argumento ou configurações que controlem a verbosidade do Maven.
Não existe uma maneira semelhante ao LOG4J de definir o nível de log?
Solução
Você pode tentar o -q trocar.
-q,--quiet Saída silenciosa - mostra apenas erros
Outras dicas
-q como dito acima é o que você precisa.Uma alternativa poderia ser
-B, --modo em loteExecutar no modo de lote não interativo (lote) é essencial se você precisar executar o Maven em um ambiente de integração contínuo e não interativo.Ao executar no modo não interativo, o Maven nunca irá parar para aceitar a entrada do usuário.Em vez disso, ele usará valores padrão razoáveis quando exigir entrada.
E também reduzirá as mensagens de saída mais ou menos ao essencial.
Use as opções de linha de comando -q ou --quiet
Ligação oficial:https://maven.apache.org/maven-logging.html
Você pode adicionar no JVM parâmetros:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
Cuidado com MAIÚSCULAS.
Maven 3.1.x usa SLF4j para registro, você pode encontrar instruções sobre como configurá-lo em https://maven.apache.org/maven-logging.html
Resumidamente:Ou modificar ${MAVEN_HOME}/conf/logging/simplelogger.properties
, ou defina as mesmas propriedades por meio do MAVEN_OPTS
variável de ambiente.
Por exemplo:contexto MAVEN_OPTS
para -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
configura o registro do ouvinte de transferência no modo em lote e -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
define o nível de log padrão.
Se você só quer se livrar do [INFO]
mensagens que você também pode fazer:
mvn ... | fgrep -v "[INFO]"
Suprimir todos saídas (exceto erros) que você pode redirecionar stdout
para /dev/null
com:
mvn ... 1>/dev/null
(Isso só funciona se você usar bash
(ou shells semelhantes) para executar os comandos do Maven.)
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 artefato de download, como as seguintes, eram barulhentas e não eram úteis.
Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
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
Meu problema é que -q está muito quieto.Estou executando o maven sob CI
Com Maven 3.6.1 (abril de 2019), agora você tem um opção para suprimir o progresso da transferência ao fazer download/upload em modo interativo.
mvn --no-transfer-progress ....
ou em resumo:
mvn -ntp ... ....
Isto é o que Raio proposto nos comentários com MNG-6605 e RP 239.