Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden

Die Code Quality in Java Projekten erhalten (Teil I) ...

Maven basierte Build-Prozesse haben sich in den letz­ten Jahren zuneh­mend zur Erzeugung der Entwicklungs- und Releasemodule eta­bliert. Neben die­ser Aufgabe bie­ten sie auf sehr einfacheWeise die Möglichkeit, Reports (z.B. JUnit, PMD, u.a.) und Dokumentationen (Java Doc) der Softwaremodule zu erzeugen.

Vor allem die Checkstyle, PMD und FindBugs – Reports stel­len wich­tige Informationen bereit, die Aufschluss über die Qualität des Source Codes bie­ten. Letztendlich ent­hal­ten sie Richtlinien oder Wissen zu bestimm­ten Problemstellen im Source Code.

Da die Entwicklungszeiten in den Softwareprojekten knapp sind blei­ben die per Nightly Build erzeug­ten Reports meist unge­nutzt. Die manu­elle Auswertung vor allem in der hei­ßen Phase vor der Fertigstellung der Softwareprojekte wird meist aus Zeitgründen nicht mehr aus­ge­führt. So blei­ben wich­tige "Ratschläge" der Reports unbe­rück­sich­tigt und poten­ti­elle Fehlerquellen wer­den mit in den Wirkbetrieb der Softwaremodule übernommen.

Um kon­ti­nu­ier­lich von den Reports zu pro­fi­tie­ren such­ten wir nach einer Möglichkeit, die Ergebnisse der Reports auto­ma­tisch zu berück­sich­ti­gen. Da bereits die tech­ni­sche Infrastruktur durch einen Continuous Integration Server vor­han­den war und die Softwaremodule beim Einchecken durch die Entwickler gebaut wur­den, lag die Unterbrechung des Builds im Fehlerfall am nächsten.

Und genau dafür bie­ten die genann­ten Maven Plugins (getes­tet mit Maven1) die Möglichkeit, den Buildprozess beim Auftreten von Fehlern zu unterbrechen.

PMD
maven.pmd.failonerror=true
maven.pmd.failonruleviolation=true

CheckStyle
maven.checkstyle.fail.on.violation=true

FindBugs
maven.findbugs.failOnError=true

Während man die Art der durch­zu­füh­ren­den Tests im Fall des PMD und FindBugs-Plugins sehr fein bestim­men kann, fehlt diese Abstufung im Falle des Checkstyle Plugins. In den kom­men­den Beiträgen wird mehr über die Konfiguration und die Möglichkeiten der Plugins zu lesen sein.

Related Posts

Pin It on Pinterest