9

Tenemos un gran proyecto con muchos submódulos. Una construcción completa lleva actualmente más de 30 minutos.cómo marcar el tiempo (perfil) objetivos de maven en un proyecto de varios módulos

Me pregunto cómo se distribuye este tiempo entre los diferentes complementos/objetivos, p. pruebas, análisis estático (findbugs, pmd, checkstyle, etc ...)

¿Sería posible cronometrar la construcción para ver dónde (en ambas dimensiones: módulos y objetivos) se gasta la mayor parte del tiempo?

+0

pregunta relacionada http://stackoverflow.com/questions/5120470/how- to-time-the-different-stages-of-maven-execution – artbristol

Respuesta

0

No creo que haya una manera de determinar el tiempo de objetivos particulares. Lo que puede hacer es ejecutar los objetivos particulares por separado para ver cuánto tiempo llevan. Entonces, en lugar de hacer una "instalación de mvn" que ejecute todas sus pruebas, checkstyle, etc. simplemente haga "mvn checkstyle: checkstyle" para ver cuánto tarda eso en un módulo en particular.

Tener todo listo cada vez es agradable cuando se hace por un servidor automatizado (continuo/jenkins/hudson) pero cuando se está creando localmente, a veces es mejor poder simplemente compilar. Algunas de las cosas que puede hacer son que los objetivos de análisis estáticos SOLO se ejecuten cuando pase un determinado parámetro o perfil. Otra opción es hacer que se ejecuten solo cuando maven.test.skip = false.

Si está utilizando una construcción continua, intente hacer que el análisis estático solo se realice cada 4 horas o diariamente.

4

Si ejecuta la compilación en un servidor de CI como TeamCity o Jenkins (formerly Hudson), le dará indicaciones de tiempo para cada paso en el proceso de compilación y podrá usar estos valores para determinar qué objetivos/proyectos toman más tiempo .

No creo que haya ninguna manera incorporada en maven para hacer esto. De hecho, en la pregunta relacionada artbristol publicada, hay un enlace a Maven feature request for this functionality. Desafortunadamente, este problema no se ha resuelto y no sé si alguna vez se agregará.

La otra posible solución es escribir su propio complemento que proporcionaría estos metadatos de compilación para usted.

+1

No se dio cuenta de los tiempos individuales de los objetivos/módulos en Jenkins. Ayudó mucho, ¡gracias! – cs94njw

Cuestiones relacionadas