Maven crache beaucoup trop de lignes de sortie à mon goût (j'aime bien la manière Unix: pas de nouvelles, c'est de bonnes nouvelles).
Je veux supprimer toutes les lignes [INFO], mais je n'ai trouvé aucune mention d'un argument ou de paramètres de configuration contrôlant la verbosité de Maven.
N'y a-t-il pas de moyen semblable à LOG4J pour définir le niveau de journalisation?
Vous pouvez essayer le commutateur -q .
-q, - quiet Sortie silencieuse - affiche uniquement les erreurs
-q comme dit ci-dessus est ce dont vous avez besoin. Une alternative pourrait être
-B , --batch-mode Exécuter en mode non interactif (batch) Le mode batch est essentiel si vous devez exécuter Maven de manière non interactive, environnement d'intégration continue. En mode non interactif, Maven ne cessera jamais d'accepter les entrées de l'utilisateur. Au lieu de cela, il utilisera des valeurs par défaut sensibles lorsqu'il nécessite une entrée .
Et réduira également les messages de sortie plus ou moins à l'essentiel.
Utilisez les options de ligne de commande -q ou --quiet
Lien officiel: https://maven.Apache.org/maven-logging.html
Vous pouvez ajouter dans les paramètres JVM:
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
Attention aux majuscules.
La réponse existante vous aide à filtrer en fonction du niveau de journalisation à l'aide de --quiet
. J'ai constaté que de nombreux messages INFO sont utiles pour le débogage. Toutefois, les messages de téléchargement du journal des artefacts, tels que les suivants, étaient bruyants et peu utiles.
Downloading: http://nexus:8081/nexus/content/groups/public/org/Apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
J'ai trouvé cette solution:
https://blogs.itemis.com/fr/in-a-nutshell-removing-artifact-messages-from-maven-log-output
mvn clean install -B -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
Maven 3.1.x utilise SLF4j pour la journalisation, vous pouvez trouver des instructions pour le configurer à l’adresse https://maven.Apache.org/maven-logging.html
En bref: Modifiez ${MAVEN_HOME}/conf/logging/simplelogger.properties
ou définissez les mêmes propriétés via la variable d'environnement MAVEN_OPTS
.
Par exemple: définir MAVEN_OPTS
sur -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
configure la consignation de l'écouteur de transfert en mode de traitement par lots, et -Dorg.slf4j.simpleLogger.defaultLogLevel=warn
définit le niveau de journalisation par défaut.
Si vous souhaitez uniquement vous débarrasser des messages [INFO]
, vous pouvez également procéder comme suit:
mvn ... | fgrep -v "[INFO]"
Pour supprimer tout sorties (sauf les erreurs), vous pouvez rediriger stdout
vers /dev/null
avec:
mvn ... 1>/dev/null
(Cela ne fonctionne que si vous utilisez bash
(ou des shells similaires) pour exécuter les commandes Maven.)
Mon problème est que -q est trop silencieux. J'exécute Maven sous CI
Avec Maven 3.6.1 (avril 2019) , vous avez maintenant une option pour supprimer la progression du transfert lors du téléchargement/téléchargement en mode interactif .
mvn --no-transfer-progress ....
ou en bref:
mvn -ntp ... ....
C’est ce que Ray a proposé dans les commentaires avec MNG-6605 et PR 239 .