Je veux empêcher maven d'afficher des messages INFO, je veux voir uniquement les AVERTISSEMENTS et les ERREURS (le cas échéant).
Comment puis-je y parvenir, de préférence en changeant la ligne de commande qui appelle maven?
L'exécution de maven avec le paramètre -q ou --quiet n'affiche que les erreurs. Je ne connais pas de paramètre qui affiche également des avertissements, mais pas de niveau d’information.
J'ai fait une petite enquête parce que je suis aussi intéressé par la solution.
Actuellement, maven 3.1.x utilise SLF4J pour se connecter à System.out . Vous pouvez modifier les paramètres de journalisation dans le fichier:
${MAVEN_HOME}/conf/logging/simplelogger.properties
D'après la page: http://maven.Apache.org/maven-logging.html
Je pense que vous devriez pouvoir configurer le niveau de journal par défaut du logger simple via un paramètre de ligne de commande, comme ceci:
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
Mais je ne pouvais pas le faire fonctionner. Je suppose que le seul problème avec ceci est que maven récupère le niveau par défaut du fichier de configuration sur le classpath. J'ai également essayé quelques autres paramètres via System.properties, mais tous ont échoué.
Vous pouvez trouver la source de slf4j sur github ici: slf4j github
La source de simplelogger ici: slf4j/jcl-over-slf4j/src/main/Java/org/Apache/commons/logging/impl/SimpleLog.Java
Le chargeur de plexus charge le simplelogger.properties
.
mvn validate clean install | egrep -v "(^\[INFO\])"
ou
mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])"
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[DEBUG\]"
Vous pouvez y parvenir avec MAVEN_OPTS, par exempleMAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean
Plutôt que de mettre la propriété système directement sur la ligne de commande. (Au moins pour maven 3.3.1.)
Pensez à utiliser ~/.mavenrc
pour définir MAVEN_OPTS
si vous souhaitez que la connexion soit modifiée pour votre connexion dans tous les appels Maven.
Si vous utilisez Logback, placez simplement ce fichier logback-test.xml
dans le répertoire 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>
Malheureusement, même avec maven 3, le seul moyen de le faire est de patcher le code source.
Voici de brèves instructions pour faire cela.
Clone ou fork Maven 3 repo: "git clone https://github.com/Apache/maven-3.git "
Modifiez la journalisation org.Apache.maven.cli.MavenCli # et modifiez-la.
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO );
à
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN );
Dans la version actuelle de l'instantané, il est à la ligne 270
Ensuite, lancez simplement "mvn install", votre nouvelle distribution maven sera située dans le dossier "Apache-maven\target \"
Voir ce diff pour la référence: https://github.com/ushkinaz/maven-3/commit/cc079aa75ca8c82658c7ff53f18c6caaa32d2131
J'ai remarqué qu'en utilisant la version 2.20.1 de le plugin maven sunfire , tous les avertissements sont écrits dans un fichier dumpstream. par exemple. /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
La méthode la plus simple consiste à effectuer une mise à niveau vers Maven 3.3.1 ou une version plus récente pour tirer parti du support de ${maven.projectBasedir}/.mvn/jvm.config
.
Ensuite, vous pouvez utiliser n’importe quelle option du support SimpleLogger support de Maven SL4FJ pour configurer tous les enregistreurs ou certains enregistreurs. Par exemple, voici comment créer tous les avertissements au niveau warn
, à l'exception du PMD configuré pour se connecter à error
:
cat .mvn/jvm.config
-Dorg.slf4j.simpleLogger.defaultLogLevel=warn -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
Voir ici pour plus de détails sur la journalisation avec Maven.