MavenがINFOメッセージを表示しないようにしたいのですが、警告とエラー(ある場合)のみを表示したいです。
できればmavenを呼び出すコマンドラインを変更することで、これをどのように達成できますか?
-q
または--quiet
パラメーターを使用してMavenを実行すると、エラーのみが表示されます。警告も表示する設定は知りませんが、情報レベルはありません。
私も解決策に興味があるので、私は小さな調査をしました。
現在、maven 3.1.xはSLF4Jを使用してSystem.outにログインします。ファイルのログ設定を変更できます。
${MAVEN_HOME}/conf/logging/simplelogger.properties
ページによると: http://maven.Apache.org/maven-logging.html
次のように、コマンドラインパラメーターを介してシンプルロガーのデフォルトのログレベルを設定できるはずだと思います。
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
しかし、私はそれを動作させることができませんでした。これに関する唯一の問題は、Mavenがクラスパス上の設定ファイルからデフォルトレベルを選択することだと思います。 System.propertiesを介して他の設定もいくつか試しましたが、すべて失敗しました。
Githubでslf4jのソースを見つけることができます: slf4j github
シンプルロガーのソースはこちら slf4j/jcl-over-slf4j/src/main/Java/org/Apache/commons/logging/impl/SimpleLog.Java
神経叢ローダーはsimplelogger.properties
をロードします。
mvn validate clean install | egrep -v "(^\[INFO\])"
または
mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
たとえば、MAVEN_OPTSでこれを実現できます。MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
システムプロパティをコマンドラインに直接配置するのではなく。 (少なくともMaven 3.3.1の場合。)
すべてのMaven呼び出しでログインのロギングを変更する場合は、~/.mavenrc
を設定するためにMAVEN_OPTS
を使用することを検討してください。
Logbackを使用している場合、次のlogback-test.xml
ファイルをsrc/test/resources
ディレクトリに配置するだけです:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
残念ながら、Maven 3を使用しても、ソースコードにパッチを適用するしかありません。
その方法を簡単に説明します。
Maven 3リポジトリのクローンまたはフォーク: "git clone https://github.com/Apache/maven-3.git "
Org.Apache.maven.cli.MavenCli#loggingを編集し、変更します
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
に
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );
現在のスナップショットバージョンでは、270行目にあります。
次に、「mvn install」を実行するだけで、新しいMavenディストリビューションは「Apache-maven\target \」フォルダーに配置されます。
リファレンスについては、この差分を参照してください: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
最も簡単な方法は、${maven.projectBasedir}/.mvn/jvm.config
サポートを利用するために Maven 3.3.1 以上にアップグレードすることです。
次に、MavenのSL4FJの SimpleLogger サポートのオプションを使用して、すべてのロガーまたは特定のロガーを構成できます。たとえば、warn
でログを記録するように構成されたPMDを除き、error
レベルですべての警告を行う方法を次に示します。
cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
Mavenを使用したロギングの詳細については、 here を参照してください。
maven sunfireプラグイン の2.20.1バージョンを使用すると、すべての警告がダンプストリームファイルに書き込まれます。例えば/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream