Mavenは、私の好みに合わせて非常に多くの行を出力します(私はUnixの方法が好きです:良いニュースはありません)。
すべての[INFO]行を削除したいのですが、Mavenの冗長性を制御する引数または構成設定についての言及が見つかりませんでした。
ログレベルを設定するLOG4Jのような方法はありませんか?
-q スイッチを試すことができます。
-q、-quiet静かな出力-エラーのみを表示
-q上記のようにあなたが必要なものです。代替案は
-B、-batch-mode非対話型(バッチ)モードで実行非対話型の継続的統合環境でMavenを実行する必要がある場合は、バッチモードが不可欠です。非対話型モードで実行している場合、Mavenはユーザーからの入力を受け入れるために停止することはありません。代わりに、入力が必要な場合に適切なデフォルト値を使用します。
また、出力メッセージを基本的に多少減らします。
公式リンク: https://maven.Apache.org/maven-logging.html
[〜#〜] jvm [〜#〜]パラメーターに追加できます:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
大文字に注意してください。
-qまたは--quietコマンドラインオプションを使用します
私の問題は、-qが静かすぎることです。 CIでmavenを実行しています
Maven 3.6.1(2019年4月) では、オプションを使用して、インタラクティブモードでダウンロード/アップロードするときに転送の進行を抑制できます。
mvn --no-transfer-progress ....
または要するに:
mvn -ntp ... ....
既存の回答は、--quiet
を使用してログレベルに基づいてフィルタリングするのに役立ちます。多くのINFOメッセージはデバッグに役立ちますが、次のようなアーティファクトログメッセージのダウンロードは騒々しく、役に立たないことがわかりました。
Downloading: http://nexus:8081/nexus/content/groups/public/org/Apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
私はこの解決策を見つけました:
https://blogs.itemis.com/en/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
Maven 3.1.xはロギングにSLF4jを使用します。設定方法は https://maven.Apache.org/maven-logging.html で確認できます。
つまり、${MAVEN_HOME}/conf/logging/simplelogger.properties
を変更するか、MAVEN_OPTS
環境変数を使用して同じプロパティを設定します。
たとえば、MAVEN_OPTS
を-Dorg.slf4j.simpleLogger.log.org.Apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
に設定すると、バッチモード転送リスナーのログが構成され、-Dorg.slf4j.simpleLogger.defaultLogLevel=warn
がデフォルトのログレベルを設定します。
[INFO]
メッセージのみを削除する場合は、次のこともできます。
mvn ... | fgrep -v "[INFO]"
all出力(エラーを除く)を抑制するには、次を使用してstdout
を/dev/null
にリダイレクトできます。
mvn ... 1>/dev/null
(これは、bash
(または同様のシェル)を使用してMavenコマンドを実行する場合にのみ機能します。)