Kann Maven gemacht weniger ausführlich werden?
Frage
Maven speien viel zu viele Zeilen der Ausgabe nach meinem Geschmack aus (Ich mag die Art und Weise Unix: keine Nachrichten sind gute Nachrichten)
.Ich möchte von allen [INFO] Linien, um loszuwerden, aber ich konnte keine Erwähnung eines Arguments oder Konfigurationseinstellungen finden, die den Detaillierungsgrad von Maven steuert.
Gibt es keine LOG4J artig die Protokollebene zu setzen?
Lösung
Sie können versuchen, die -q Schalter.
-q, - quiet Stiller Ausgang - nur Fehler anzeigen
Andere Tipps
-q wie oben gesagt ist, was Sie brauchen. Eine Alternative könnte sein
-B , - Batch-Modus Führen Sie in nicht-interaktiven (Batch-Modus) Batch-Modus ist wichtig, wenn Sie Maven in einer nicht-interaktiven, kontinuierlichen Integration-Umgebung ausgeführt werden müssen. Wenn im nicht-interaktiven Modus ausgeführt wird, Maven wird nie eine Eingabe vom Benutzer akzeptieren stoppen. Stattdessen wird es sinnvoll, Standardwerte verwenden, wenn es eine Eingabe erfordert.
Und wird auch die Ausgabe von Meldungen mehr oder weniger auf das Wesentliche reduzieren.
Mit den -q oder --quiet Befehlszeilenoptionen
Offizieller Link: https://maven.apache.org/maven-logging.html
Sie können in den JVM Parameter hinzufügen:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
Vorsicht vor groß geschrieben.
Maven 3.1.x verwendet SLF4J für die Protokollierung, können Sie Anweisungen finden, wie es konfigurieren unter https : //maven.apache.org/maven-logging.html
Kurz gesagt:. Entweder ändern ${MAVEN_HOME}/conf/logging/simplelogger.properties
, oder setzen Sie die gleichen Eigenschaften über die MAVEN_OPTS
Umgebungsvariable
Zum Beispiel:. MAVEN_OPTS
zu -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
Einstellung konfiguriert die Protokollierung der Batch-Modus Transfer Hörer und -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
legt die Standardprotokollebene
Wenn Sie nur der [INFO]
Nachrichten loswerden auch Sie tun können:
mvn ... | fgrep -v "[INFO]"
Zur Unterdrückung all Ausgänge (außer Fehler) Sie stdout
umleiten könnten /dev/null
mit:
mvn ... 1>/dev/null
(Dies funktioniert nur, wenn Sie verwenden bash
(oder Schalen) die Maven-Befehle auszuführen.)
Die bestehende Antwort Hilfe Sie auf dem Log-stufigen Filter Basis mit --quiet
. Ich fand, dass viele INFO-Nachrichten für die Fehlersuche nützlich sind, aber das Herunterladen Artefakt Protokollmeldungen wie die folgenden waren laut und nicht hilfreich.
Downloading: http://nexus:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
Ich fand diese Lösung:
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
Mein Problem ist, dass -q zu leise ist. Ich bin mit Maven unter CI
Mit Maven 3.6.1 (April 2019) Sie jetzt eine Option, den Übertragungsfortschritt zu unterdrücken, wenn das Herunterladen / Hochladen im interaktiven Modus .
mvn --no-transfer-progress ....
oder kurz:
mvn -ntp ... ....
Das ist, was Ray vorgeschlagen in die Kommentare mit " https://issues.apache.org/jira/browse/MNG-6605" rel =“ nofollow noreferrer "> MNG-6605 und PR 239 .