2011-08-30 15 views
5

Trabajamos con una gran cantidad de código heredado y pensamos en introducir algunas métricas para el nuevo código. ¿Es posible permitir que Findbugs y Checkstyle se ejecuten en archivos modificados solo en lugar de un proyecto completo?Checkstyle y Findbugs para archivos cambiados solo en Jenkins (y/o Hudson)

Sería bueno asegurarse de que solo el archivo con un mínimo de calidad está registrado, pero la base del código en sí no es (todavía) tocada y evaluada para no confundir a las personas por miles de problemas.

Respuesta

3

En teoría, sería posible. Se podría utilizar un script de shell para analizar el SVN (o lo que sea SMC) registros de cambios después de una fecha de inicio dado, identificar los archivos .java a partir de estos conjuntos de cambios y construir dos patrones de éstos:

  • El Findbugs Maven Plugin espera una coma Separado de la lista de clase (o paquete) nombres para el parámetro onlyAnalyze, por lo que tendrá para traducir nombres de archivo a nombres de clase completamente calificado (esto hará que difícil cuando usted está tratando con las clases internas)
  • el Maven Checkstyle Plugin es aún peor, se espera un archivo de configuración para su parámetro packageNamesLocation. Desafortunadamente, solo se permiten paquetes, no archivos individuales. Entonces, , tendrá que traducir los nombres de los archivos a los paquetes.

En los ejemplos anteriores supongo que está utilizando maven. Estoy bastante seguro de que se pueden hacer cosas similares con la hormiga, pero no lo sabría.

Yo mismo probablemente usaría un script de Groovy en lugar de un script de shell para lograr los resultados anteriores.

+0

voy a utilizar Jenkins, Maven y GIT. Scripting demasiado no era realmente preferido. ¿Hay algún complemento, opción o algo disponible? No podemos estar aquí las primeras personas que quieren verificar solo los archivos nuevos. –

+0

@ Rick-Rainer cuando tiene requisitos inusuales, por lo general tiene que implementarlos usted mismo. Lo siento. –

+0

Pensé que sería tan inusual ... :-(Gracias por la pista, de todos modos. Tal vez alguien tiene una solución lista para usar. –

2

Findbugs tiene tareas de hormigas que pueden hacer generar diferencias entre los diferentes resultados FindBugs para ver sólo los deltas, por lo que sólo la presentación de informes nuevos errores, ver

http://findbugs.sourceforge.net/manual/datamining.html

+0

En realidad, esa es una buena característica. Uno puede verificar los nuevos errores introducidos de esa manera. Esto ayuda un poco. Creo que también se puede introducir esta característica en Maven. Lo comprobaré. ¡Gracias por la pista! –

Cuestiones relacionadas