Maven può essere reso meno dettagliato?
Domanda
Maven emette troppe righe di output secondo i miei gusti (mi piace il modo Unix:nessuna notizia è una buona notizia).
Voglio eliminare tutte le righe [INFO], ma non sono riuscito a trovare alcuna menzione di un argomento o di impostazioni di configurazione che controllano la verbosità di Maven.
Non esiste un modo simile a LOG4J per impostare il livello di registro?
Soluzione
Puoi provare il -Q interruttore.
-q,--quiet Output silenzioso: mostra solo gli errori
Altri suggerimenti
-Q come detto sopra è quello che ti serve.Un'alternativa potrebbe essere
-B, --modalità batchEsegui in modalità batch non interattiva (batch) è essenziale se è necessario eseguire Maven in un ambiente di integrazione non interattivo e continuo.Quando viene eseguito in modalità non interattiva, Maven non smetterà mai di accettare input dall'utente.Utilizzerà invece valori predefiniti ragionevoli quando richiede input.
E ridurrà anche i messaggi di output più o meno all'essenziale.
Utilizza le opzioni della riga di comando -q o --quiet
Collegamento ufficiale:https://maven.apache.org/maven-logging.html
Puoi aggiungere il JVM parametri:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
Attenzione alle MAIUSCOLE.
Maven 3.1.x utilizza SLF4j per la registrazione, puoi trovare istruzioni su come configurarlo su https://maven.apache.org/maven-logging.html
In breve:O modificare ${MAVEN_HOME}/conf/logging/simplelogger.properties
, o impostare le stesse proprietà tramite MAVEN_OPTS
variabile d'ambiente.
Per esempio:collocamento MAVEN_OPTS
A -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
configura la registrazione del listener di trasferimento in modalità batch e -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
imposta il livello di registro predefinito.
Se vuoi solo sbarazzarti di [INFO]
messaggi che potresti anche fare:
mvn ... | fgrep -v "[INFO]"
Sopprimere Tutto output (eccetto errori) che potresti reindirizzare stdout
A /dev/null
con:
mvn ... 1>/dev/null
(Funziona solo se usi bash
(o shell simili) per eseguire i comandi Maven.)
La risposta esistente ti aiuta a filtrare in base al livello di log utilizzando --quiet
.Ho scoperto che molti messaggi INFO sono utili per il debug, tuttavia i messaggi di registro degli artefatti in download come i seguenti erano rumorosi e non utili.
Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
Ho trovato questa soluzione:
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
Il mio problema è che -q è troppo silenzioso.Sto eseguendo Maven sotto CI
Con Maven 3.6.1 (aprile 2019), ora hai un file opzione per sopprimere l'avanzamento del trasferimento durante il download/caricamento in modalità interattiva.
mvn --no-transfer-progress ....
o in breve:
mvn -ntp ... ....
Quello è ciò che Ray proposto nei commenti con MNG-6605 E PR239.