Frage : Wie sende ich bei der Ausführung von Maven in Eclipse die Konsolenausgabe in eine Datei?
Ich möchte dies mit einer Pom-Einstellung oder einem Maven-Plugin erreichen. Nicht Ich möchte die Laufkonfigurationen oder die Maven-Systemeinstellungen ändern.
Als Referenz verwende ich Windows 7, Eclipse Luna, Java 6, Maven 3.
Gemäß offiziellen Befehlszeilenoptionen können Sie -l,--log-file <arg>
verwenden, der Folgendes bereitstellt:
Protokolldatei, in der die gesamte Build-Ausgabe gespeichert wird.
Als solches läuft:
mvn clean install -l output.log
Würde nichts auf die Konsole drucken und die gesamte Build-Ausgabe automatisch zur output.log
-Datei umleiten.
Wenn Sie es nicht jedes Mal eingeben möchten (oder Sie möchten eigentlich nicht die Befehlszeile verwenden) und diese als Standardoption verwenden möchten (obwohl dies in seltenen Fällen der Fall ist), können Sie das neue Verhalten der Befehlszeilenoptionen verwenden seit Version 3.3.1 und haben einen .mvn
-Ordner, in dem sich die betreffende pom.xml
-Datei befindet, und eine maven.config
-Datei, in der lediglich die folgende Zeile angegeben wird:
-l output.log
Das heißt, die .mvn/maven.config
-Datei ersetzt MAVEN_OPTIONS
nur für ihr Projekt, local wo sie erstellt wurde, wobei die Optionen, die sie bietet, keine Auswirkungen auf andere Builds gemäß den Maven-Einstellungen von MAVEN_OPTIONS
haben.
Dies ist eine IDE agnostische Lösung (es ist eine neue integrierte Funktion von Maven) und lokal für ein Projekt, die jedoch nicht über die einfache POM-Bearbeitung bereitgestellt wird, die seit der ersten Phase von Maven voreingestellte Lebenszyklusphasen ist validate
, wobei:
Überprüfen Sie, ob das Projekt korrekt ist und alle erforderlichen Informationen verfügbar sind
Das heißt, während des Builds, wenn der Build bereits gestartet ist (und die generierte Ausgabe), validiert er die pom.xml
-Datei und ist daher zu spät, um die Build-Ausgabe zu diesem Zeitpunkt basierend auf einigen POM-Eigenschaften/Plugin umzuleiten.
Gehen Sie zum Ausführen als und wählen Sie Run Configuration -> Commons -> Select a file
.
Dies sollte Ihre Ausgabe zu der von Ihnen angegebenen Datei umleiten.
Entsprechend this können Sie den ${MAVEN_HOME}/conf/logging/simplelogger.properties
bearbeiten. Ich habe es kurz versucht und die Ausgabe von maven wird umgeleitet, aber alles andere, was in stdout
geschrieben wird (beispielsweise Tests), schreibt immer noch auf der Konsole
Wie wäre es mit einem Fork von M2E und dem Ändern der Ausgabedatei für die Startkonfiguration aus pom.xml
Eine mögliche Lösung ist das Einstellen des Ausgabeformats in mvn file
. Fügen Sie beispielsweise im Verzeichnis /usr/bin
die gewünschte Ausgabe hinzu, die den Pfad mitteilt, an dem das Protokoll am Ende der exec "$JAVACMD" \
-Zeile gespeichert wird: | tee /home/maven-log.log .
Es funktioniert jedoch nur, wenn der Maven per Terminal Line angerufen wird. Wenn sie von IDEs wie Eclipse aufgerufen werden, funktionieren diese Lösungen nicht.