Question

Maven crache beaucoup trop de lignes de sortie à mon goût (j'aime la manière Unix: pas de nouvelles, pas 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'existe-t-il pas un moyen semblable à LOG4J pour définir le niveau de journalisation?

Était-ce utile?

La solution

Vous pouvez essayer le -q commutateur.

  

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

Autres conseils

-q comme indiqué ci-dessus est ce dont vous avez besoin. Une alternative pourrait être

-B , - mode batch Exécuter en mode non interactif (batch) Le mode batch est essentiel si vous devez exécuter Maven dans un environnement d'intégration continue et non interactif. 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écessitera 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 les paramètres JVM :

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Méfiez-vous des majuscules.

Maven 3.1.x utilise SLF4j pour la journalisation. Vous trouverez des instructions sur sa configuration à 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 & # 8204; & # 8203; i.transfer.Slf4jMave & # 8204; NTransferListener = wa & # 8204; & # 8203; rn configure la journalisation de l'écouteur de transfert en mode de traitement par lots et -Dorg.slf4j.simpleLogger.defaultLogLevel = warn définit le comportement par défaut log niveau.

Si vous souhaitez uniquement vous débarrasser des messages [INFO] , vous pouvez également procéder comme suit:

mvn ... | fgrep -v "[INFO]"

Pour supprimer toutes les sorties (sauf les erreurs), vous pouvez rediriger stdout vers / dev / null à l'aide de:

mvn ... 1>/dev/null

(Cela ne fonctionne que si vous utilisez bash (ou des shells similaires) pour exécuter les commandes Maven.)

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
  

Mon problème est que -q est trop silencieux. J'exécute Maven sous CI

Avec Maven 3.6.1 (avril 2019) , vous disposez maintenant d'une option pour supprimer la progression du transfert lors du 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 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top