Comment modifier le niveau de journalisation de maven pour afficher uniquement les avertissements et les erreurs?

Je veux empêcher Maven d’afficher les messages INFO, je veux voir uniquement des AVERTISSEMENTS et des 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 affiche uniquement les erreurs. Je ne connais pas de paramètre qui affiche également des avertissements, mais pas de niveau d’information.

Répondre à votre question

J’ai fait une petite enquête parce que je suis également intéressé par la solution.

Options de verbosité de ligne de commande Maven

Selon http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-verbose-option

  • -e pour erreur
  • -X pour le débogage
  • -q pour erreur uniquement

Fichier de configuration de journalisation Maven

Actuellement, maven 3.1.x utilise SLF4J pour se connecter à System.out. Vous pouvez modifier les parameters de journalisation dans le fichier:

 ${MAVEN_HOME}/conf/logging/simplelogger.properties 

Selon la page: http://maven.apache.org/maven-logging.html

Configuration de la ligne de commande

Je pense que vous devriez pouvoir configurer le niveau de journalisation par défaut du simple enregistreur 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 parameters via System.properties, mais tous ont échoué.

annexe

Vous pouvez trouver la source de slf4j sur github ici: slf4j github

La source du simplelogger ici: slf4j / jcl-over-slf4j / src / main / java / org / apache / commons / logging / impl / SimpleLog.java

Le chargeur plexus charge le simplelogger.properties .

 mvn validate clean install | egrep -v "(^\[INFO\])" 

ou

 mvn validate clean install | egrep -v "(^\[INFO\]|^\[DEBUG\])" 

Vous pouvez y parvenir avec MAVEN_OPTS, par exemple
MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=warn mvn clean

Plutôt que de placer la propriété système directement sur la ligne de commande. (Au moins pour maven 3.3.1.)

Envisagez d’utiliser ~/.mavenrc pour définir MAVEN_OPTS si vous souhaitez que la connexion soit modifiée pour votre connexion sur toutes les invocations maven.

Si vous utilisez Logback, placez simplement ce fichier logback-test.xml dans le répertoire src/test/resources :

    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n       

Malheureusement, même avec maven 3, le seul moyen de le faire est de patcher le code source.

Voici une courte instruction pour faire cela.

Clone ou fourchette Maven 3 repo: “git clone https://github.com/apache/maven-3.git

Modifier org.apache.maven.cli.MavenCli # logging et modifier

 cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_INFO ); 

à

 cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_WARN ); 

Dans la version actuelle de l’instantané, c’est à la ligne 270

Ensuite, lancez simplement “mvn install”, votre nouvelle dissortingbution maven se trouvera 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é en utilisant la version 2.20.1 du plugin maven sunfire que tous les avertissements sont écrits dans un fichier dumpstream. par exemple /myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream

Le moyen le plus simple consiste à effectuer une mise à niveau vers Maven 3.3.1 ou supérieur pour tirer parti du ${maven.projectBasedir}/.mvn/jvm.config .

Vous pouvez ensuite utiliser toutes les options du support SimpleLogger de Maven SL4FJ pour configurer tous les enregistreurs ou enregistreurs particuliers. Par exemple, voici comment procéder à tous les avertissements au niveau des warn , à l’exception du PMD configuré pour se connecter à l’ 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 connexion avec Maven.