web-dev-qa-db-ja.com

pomを使用してコンソールとログファイルにMaven出力を送信する

質問:EclipseでMavenを実行しているときに、コンソール出力をファイルに送信するにはどうすればよいですか?

Pom設定またはMavenプラグインを使用してこれを実現したいと思います。 not実行構成またはMavenシステム設定を変更したい。

参考までに、Windows 7、Eclipse Luna、Java 6、Maven 3を使用しています。

12
Zack

公式のコマンドラインオプション のように、以下を提供する-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プロパティ/プラグインに基づいて、その段階でビルド出力をリダイレクトするのが遅い。

19
A_Di-Matteo

実行に移動し、Run Configuration -> Commons -> Select a fileを選択します。
これにより、指定したファイルに出力がリダイレクトされます。

5
RITZ XAVI

this によると、${MAVEN_HOME}/conf/logging/simplelogger.propertiesを編集してみることができます。私はそれを簡単に試してみて、mavenの出力がリダイレクトされましたが、stdoutへの書き込み(テストなど)は引き続きコンソールに書き込みます

4
agnul

M2Eのフォークを作成し、pom.xmlから起動構成の出力ファイルを読み取るように変更する

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

2

可能な解決策は、mvn fileで出力フォーマットを設定することです。たとえば、ディレクトリ/usr/binで、ログがexec "$JAVACMD" \行の最後に保存されるパスを通知する目的の出力を追加します。tee /home/maven-log.log

ただし、Mavenが端末回線から呼び出された場合にのみ機能します。 EclipseなどのIDEから呼び出された場合、このソリューションは機能しません。

0
leuson