it-swarm-es.tech

¿Puede Maven hacerse menos verboso?

Maven arroja demasiadas líneas de producción a mi gusto (me gusta la manera de Unix: ninguna noticia es una buena noticia).

Quiero deshacerme de todas las líneas [INFO], pero no pude encontrar ninguna mención de un argumento o configuración que controle la verbosidad de Maven.

¿No hay una forma similar a LOG4J para establecer el nivel de registro?

86
Asaf Bartov

Puede probar el interruptor - q .

-q, - salida silenciosa silenciosa - solo muestra errores

109
Jorge Ferreira

- q como se dijo anteriormente es lo que necesita. Una alternativa podria ser

- B, - batch-mode Ejecutar en modo no interactivo (batch) El modo por lotes es esencial si necesita ejecutar Maven en un entorno de integración continua no interactivo . Cuando se ejecuta en modo no interactivo, Maven nunca se detendrá para aceptar la entrada del usuario. En su lugar, utilizará valores predeterminados razonables cuando requiera entrada.

Y también reducirá los mensajes de salida más o menos a lo esencial.

23
Stanislav

Utilice las opciones de línea de comandos -q o --quiet

6
Sietse

Enlace oficial: https://maven.Apache.org/maven-logging.html

Puede agregar los parámetros JVM:

-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN

Cuidado con las MAYÚSCULAS.

6
jgrtalk

La respuesta existente lo ayuda a filtrar en función del nivel de registro utilizando --quiet. Descubrí que muchos mensajes de INFO son útiles para la depuración, sin embargo, los mensajes de registro de artefactos de descarga como los siguientes eran ruidosos y poco útiles.

Downloading: http://nexus:8081/nexus/content/groups/public/org/Apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml

Encontré esta solución:

https://blogs.itemis.com/en/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 usa SLF4j para el registro, puede encontrar instrucciones sobre cómo configurarlo en https://maven.Apache.org/maven-logging.html

En resumen: modifique ${MAVEN_HOME}/conf/logging/simplelogger.properties, o establezca las mismas propiedades a través de la variable de entorno MAVEN_OPTS.

Por ejemplo: la configuración de MAVEN_OPTS en -Dorg.slf4j.simpleLogger.log.org.Apache.maven.cl‌​i.transfer.Slf4jMave‌​nTransferListener=wa‌​rn configura el registro del oyente de transferencia en modo por lotes, y -Dorg.slf4j.simpleLogger.defaultLogLevel=warn establece el nivel de registro predeterminado.

0
ankon

Si solo desea deshacerse de los [INFO] mensajes, también puede hacer:

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

Para suprimir todas salidas (excepto errores), podría redirigir stdout a /dev/null con:

mvn ... 1>/dev/null

(Esto solo funciona si utiliza bash (o shells similares) para ejecutar los comandos de Maven.)

0
m13r

Mi problema es que -q es demasiado silencioso. Estoy corriendo maven bajo CI

Con Maven 3.6.1 (abril de 2019) , ahora tiene una opción para suprimir el progreso de la transferencia al descargar/cargar en modo interactivo .

mvn --no-transfer-progress ....

o en pocas palabras:

mvn -ntp ... ....

Eso es lo que Ray propuso en los comentarios con MNG-6605 y PR 239 .

0
VonC