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 modifiant la ligne de commande qui appelle maven?
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 modifiant la ligne de commande qui appelle maven?
Réponses:
J'ai fait une petite enquête car je suis également 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
Selon la page: http://maven.apache.org/maven-logging.html
Je pense que vous devriez pouvoir configurer le niveau de journal par défaut de l'enregistreur simple via un paramètre de ligne de commande, comme ceci:
$ mvn clean package -Dorg.slf4j.simpleLogger.defaultLogLevel=debug
Mais je n'ai pas pu le faire fonctionner . Je suppose que le seul problème avec cela est que maven récupère le niveau par défaut du fichier de configuration sur le chemin de classe. J'ai également essayé quelques autres paramètres via System.properties, mais ils ont tous é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 fichier simplelogger.properties
.
simplelogger.properties
changement? Lorsque je modifie le org.slf4j.simpleLogger.warnLevelString
paramètre mvn compile
, il se met à jour de manière appropriée, mais il semble ignorer le org.slf4j.simpleLogger.defaultLogLevel
paramètre. Il enregistre également au niveau des informations, même lorsque je le définis sur avertissement ou erreur.
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\]"
mvn validate clean install | findstr /V /B "\[INFO\]" | findstr /V /B "\[WARN\]"
findstr
prend en charge les regex et d'autres options qui pourraient le rendre plus succinct - ss64.com/nt/findstr.html
mvn validate clean install | findstr /V /R "^\[INFO\] ^\[WARN\]"
Vous pouvez y parvenir avec MAVEN_OPTS, par exemple
MAVEN_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 le paramètre MAVEN_OPTS
si vous souhaitez modifier la journalisation de votre connexion à travers toutes les invocations maven.
help:evaluate
target pour imprimer la valeur de project.version
et cette sortie (même si elle ne semble pas passer slf4j
) a également été désactivée.
Si vous utilisez Logback, placez simplement ce logback-test.xml
fichier dans le src/test/resources
répertoire:
<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>
vous pouvez y parvenir en utilisant ci-dessous dans la ligne de commande elle-même
-e for error
-X for debug
-q for only error
par exemple :
mvn test -X -DsomeProperties='SomeValue' [For Debug level Logs]
mvn test -e -DsomeProperties='SomeValue' [For Error level Logs]
mvn test -q -DsomeProperties='SomeValue' [For Only Error Logs]
Malheureusement, même avec maven 3, le seul moyen de le faire est de patcher le code source.
Voici de brèves instructions pour y parvenir.
Cloner ou fourcher le dépôt Maven 3: "git clone https://github.com/apache/maven-3.git "
Modifier la journalisation org.apache.maven.cli.MavenCli # 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 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
getLog()
- si vous pouvez vivre avec la configurabilité.
Le moyen le plus simple est de passer à Maven 3.3.1 ou supérieur pour profiter du ${maven.projectBasedir}/.mvn/jvm.config
support.
Ensuite, vous pouvez utiliser toutes les options du support SimpleLogger de SL4FJ de Maven pour configurer tous les enregistreurs ou enregistreurs particuliers. Par exemple, voici comment faire tous les avertissements au warn
niveau, sauf pour un PMD qui est 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.
J'ai remarqué que lors de l'utilisation de la version 2.20.1 du plugin maven sunfire , tous les avertissements sont écrits dans un fichier de vidage. par exemple/myproject/target/surefire-reports/2017-11-11T23-02-19_850.dumpstream
-B, --batch-mode
ou-q
rendramvn
moins verbeux.