質問:EclipseでMavenを実行しているときに、コンソール出力をファイルに送信するにはどうすればよいですか?
Pom設定またはMavenプラグインを使用してこれを実現したいと思います。 not実行構成またはMavenシステム設定を変更したい。
参考までに、Windows 7、Eclipse Luna、Java 6、Maven 3を使用しています。
公式のコマンドラインオプション のように、以下を提供する-l,--log-file <arg>
を使用できます。
すべてのビルド出力が行われるログファイル。
そのため、実行中:
mvn clean install -l output.log
コンソールに何も出力せず、全体のビルド出力をoutput.log
ファイルに自動的にリダイレクトします。
毎回入力したくない場合(または実際にコマンドラインを使用したくない場合)、それをデフォルトのオプションとして使用したい場合(まれに私が想定するケースですが)、新しいコマンドラインオプションの動作を使用できます。バージョン .3.1 であり、関連する.mvn
ファイルが配置されているpom.xml
フォルダと、その中のmaven.config
ファイルがあり、次の行を提供します。
-l output.log
つまり、.mvn/maven.config
ファイルは、そのプロジェクトのMAVEN_OPTIONS
を、それが作成された場所でlocally置き換え、オプションで提供し、MAVEN_OPTIONS
のMaven設定に従って他のビルドに影響を与えません。
これはIDE agnostic solution(これはMavenの新しい組み込み機能です)であり、プロジェクトにローカルですが、それでも単純なPOM編集では提供されません。 Mavenのデフォルトのライフサイクルフェーズ はvalidate
です。
プロジェクトが正しいこと、および必要なすべての情報が利用可能であることを確認します
つまり、ビルド中、つまりビルドが既に開始されている(および生成された出力)場合、pom.xml
ファイルを検証します。一部のPOMプロパティ/プラグインに基づいて、その段階でビルド出力をリダイレクトするのが遅い。
実行に移動し、Run Configuration -> Commons -> Select a file
を選択します。
これにより、指定したファイルに出力がリダイレクトされます。
this によると、${MAVEN_HOME}/conf/logging/simplelogger.properties
を編集してみることができます。私はそれを簡単に試してみて、mavenの出力がリダイレクトされましたが、stdout
への書き込み(テストなど)は引き続きコンソールに書き込みます
M2Eのフォークを作成し、pom.xmlから起動構成の出力ファイルを読み取るように変更する
可能な解決策は、mvn file
で出力フォーマットを設定することです。たとえば、ディレクトリ/usr/bin
で、ログがexec "$JAVACMD" \
行の最後に保存されるパスを通知する目的の出力を追加します。tee /home/maven-log.log。
ただし、Mavenが端末回線から呼び出された場合にのみ機能します。 EclipseなどのIDEから呼び出された場合、このソリューションは機能しません。