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.
J’ai fait une petite enquête parce que je suis également intéressé par la solution.
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
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é.
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.