Mach keine komplexen Sachen als Pre-Commit Hook! Wenn ein Benutzer eine Festschreibung vornimmt, kehrt die Steuerung erst nach Abschluss des Vorbereitungs-Hooks zum Benutzer zurück. Da Sonar Ihren Code kompilieren muss, müssen Ihre Benutzer bei jedem Commit auf Folgendes warten:
Wie lange wird das alles dauern? 10 Minuten? 20 Minuten? 5 Minuten? Nehmen wir an, Ihr Code ist klein oder Ihr Compiler ist sehr schnell, so dass es nur 4 Minuten dauert. Müssen Ihre Benutzer jeweils 4 Minuten warten, wenn sie ein Commit durchführen, um ihre Arbeit wieder aufzunehmen?
Erhalte stattdessen einen Continuous-Build-Server wie
Und Sie sind am Laufen. Sobald Hudson auf ist, definierst du einen "Job". Geben Sie einfach die erforderlichen Informationen ein und speichern Sie sie. Jedes Mal, wenn jemand in Subversion einen Commit durchführt, wird Hudson im Hintergrund arbeiten.
Wo der ganze Spaß kommt, sind die Dutzende (und vielleicht Hunderte) Plugins von Drittanbietern, die Jenkins erweitern können. Zum Beispiel gibt es ein Sonar-Plugin, das Ihre Sonar-Aufgaben ausführt, Ihre Datenbank aktualisiert und einige gut aussehende Berichte erstellt.
Wenn es Probleme gibt, sendet Jenkins eine E-Mail an die verantwortliche Person und das gesamte Entwicklerteam. (Plugins erlauben es Jenkins zu IM, Tweeten und sogar eine Ampel von grün auf rot zu wechseln). Dieses unmittelbare Feedback und öffentliches Wissen wird Ihre Entwickler dazu bringen, ihre eigenen Tests durchzuführen, bevor sie eine Commit durchführen.
Tags und Links maven svn integration sonarqube