wake-up-neo.com

Senden Sie die Maven-Ausgabe mit der Konsole und der Protokolldatei

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.

9
Zack

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.

16
A_Di-Matteo

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.

5
RITZ XAVI

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

4
agnul

Wie wäre es mit einem Fork von M2E und dem Ändern der Ausgabedatei für die Startkonfiguration aus pom.xml

https://github.com/Eclipse/m2e-core.git

2

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.

0
leuson