it-swarm-eu.dev

Kann Maven weniger ausführlich gemacht werden?

Maven spuckt nach meinem Geschmack viel zu viele Zeilen aus (ich mag den Unix-Weg: Keine Nachricht ist eine gute Nachricht).

Ich möchte alle [INFO] -Zeilen loswerden, aber ich konnte keine Argumente oder Konfigurationseinstellungen erwähnen, die die Ausführlichkeit von Maven steuern.

Gibt es keine LOG4J-artige Möglichkeit, den Log-Level einzustellen?

82
Asaf Bartov

Sie können den Schalter -q versuchen.

-q, - leise Leise Ausgabe - nur Fehler anzeigen

103
Jorge Ferreira

-q wie oben gesagt, was Sie brauchen. Eine Alternative könnte sein 

-B , --batch-Modus Ausführung im nicht interaktiven Modus (Stapelmodus) Der Stapelmodus ist wichtig, wenn Sie Maven in einem nicht interaktiven Modus ausführen kontinuierliche Integrationsumgebung. Im nicht interaktiven Modus wird Maven niemals aufhören, Eingaben des Benutzers zu akzeptieren. Stattdessen werden sinnvolle Standardwerte verwendet, wenn die Eingabe ..__ erforderlich ist.

Und reduziert auch die Ausgabenachrichten mehr oder weniger auf das Wesentliche.

20
Stanislav

Verwenden Sie die Befehlszeilenoptionen -q oder --quiet

6
Sietse

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

Sie können die Parameter JVM hinzufügen:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Hüten Sie sich vor GROSSBUCHSTABEN.

5
jgrtalk

Die vorhandene Antwort hilft Ihnen beim Filtern basierend auf der Protokollebene mit --quiet. Ich fand heraus, dass viele INFO-Meldungen für das Debuggen nützlich sind, aber das Herunterladen von Artefaktprotokollmeldungen wie den folgenden war verrauscht und nicht hilfreich.

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

Ich habe diese Lösung gefunden:

https://blogs.itemis.com/de/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 verwendet SLF4j für die Protokollierung. Anweisungen zur Konfiguration finden Sie unter https://maven.Apache.org/maven-logging.html

Kurz gesagt: Ändern Sie entweder ${MAVEN_HOME}/conf/logging/simplelogger.properties oder legen Sie dieselben Eigenschaften über die Umgebungsvariable MAVEN_OPTS fest.

Beispiel: Durch Festlegen von MAVEN_OPTS auf -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn wird die Protokollierung des Batch-Modus-Übertragungslisteners konfiguriert, und -Dorg.slf4j.simpleLogger.defaultLogLevel=warn legt die Standardprotokollebene fest.

0
ankon

Wenn Sie nur die [INFO]-Meldungen entfernen möchten, können Sie auch Folgendes tun:

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

Um alle Ausgaben (außer Fehlern) zu unterdrücken, können Sie stdout mit /dev/null umleiten:

mvn ... 1>/dev/null

(Dies funktioniert nur, wenn Sie die Maven-Befehle mit bash (oder ähnlichen Shells) ausführen.)

0
m13r

Mein Problem ist, dass -q zu leise ist. Ich lasse Maven unter CI laufen

Mit Maven 3.6.1 (April 2019) haben Sie jetzt die Option, um den Übertragungsfortschritt beim Herunterladen/Hochladen im interaktiven Modus zu unterdrücken .

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

oder kurz:

mvn -ntp ... ....

Das ist was Ray vorgeschlagen in den Kommentaren mit MNG-6605 und PR 239 .

0
VonC