web-dev-qa-db-fra.com

Peut-on rendre Maven moins bavard?

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?

82
Asaf Bartov

Vous pouvez essayer le commutateur -q .

-q, - quiet Sortie silencieuse - affiche uniquement les erreurs

103
Jorge Ferreira

-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.

20
Stanislav

Utilisez les options de ligne de commande -q ou --quiet

6
Sietse

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.

5
jgrtalk

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
0
errant.info

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.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn 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.

0
ankon

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.)

0
m13r

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 .

0
VonC