Maven basierte Build-Prozesse haben sich in den letzten Jahren zunehmend zur Erzeugung der Entwicklungs- und Releasemodule etabliert. Neben dieser Aufgabe bieten 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 stellen wichtige Informationen bereit, die Aufschluss über die Qualität des Source Codes bieten. Letztendlich enthalten sie Richtlinien oder Wissen zu bestimmten Problemstellen im Source Code.
Da die Entwicklungszeiten in den Softwareprojekten knapp sind bleiben die per Nightly Build erzeugten Reports meist ungenutzt. Die manuelle Auswertung vor allem in der heißen Phase vor der Fertigstellung der Softwareprojekte wird meist aus Zeitgründen nicht mehr ausgeführt. So bleiben wichtige "Ratschläge" der Reports unberücksichtigt und potentielle Fehlerquellen werden mit in den Wirkbetrieb der Softwaremodule übernommen.
Um kontinuierlich von den Reports zu profitieren suchten wir nach einer Möglichkeit, die Ergebnisse der Reports automatisch zu berücksichtigen. Da bereits die technische Infrastruktur durch einen Continuous Integration Server vorhanden war und die Softwaremodule beim Einchecken durch die Entwickler gebaut wurden, lag die Unterbrechung des Builds im Fehlerfall am nächsten.
Und genau dafür bieten die genannten Maven Plugins (getestet 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 durchzuführenden Tests im Fall des PMD und FindBugs-Plugins sehr fein bestimmen kann, fehlt diese Abstufung im Falle des Checkstyle Plugins. In den kommenden Beiträgen wird mehr über die Konfiguration und die Möglichkeiten der Plugins zu lesen sein.