Sonar-Integration mit SVN

8

Ich verwende SVN als Versionsverwaltungstool für mein Projekt und plane, Sonar für die Projektanalyse zu verwenden.

Wie kann ich die Sonar-Projektanalyse jedes Mal ausführen, wenn der Code in SVN eingecheckt ist?

    
samarth 04.08.2011, 14:02
quelle

2 Antworten

13

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:

  • Auschecken des Codes
  • Kompilieren des Codes
  • Ausführen aller Tests und Prüfungen, die Sonar ausführt
  • Warten auf Sonar, um die Berichterstellung abzuschließen und die Datenbank zu aktualisieren

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 . Jenkins ist schnell und einfach einzurichten. Es ist eine einfache * .war-Datei. Sie führen einfach:

%Vor%

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.

    
David W. 18.08.2011, 20:46
quelle
0

Sie könnten Hudson untersuchen. Es gibt ein Sonar-Plugin dafür.

    
JVerstry 18.08.2011 19:53
quelle

Tags und Links