Ich habe Jenkins eingerichtet, um automatisch mehrere Git-Zweige meines Projekts zu erstellen. Der Build löst auch eine Sonar-Analyse als eine Post-Build-Aktion aus.
Das Problem besteht darin, dass alle Zweige auf dasselbe Sonar-Projekt verweisen. Ich weiß, dass es eine Sonar-Branch-Eigenschaft gibt. Ist es möglich, dass Jenkins die Eigenschaft sonar.branch automatisch auf den aktuellen git-Zweig setzt, der erstellt wird (ohne die pom.xml des Projekts ändern zu müssen)?
Sie können versuchen, -Dsonar.branch=something
im Feld MAVEN_OPTS in jenkins post-build action (Erweiterte Konfiguration) hinzuzufügen.
Ich kann nicht something
auflösen, da ich nicht weiß, wie Sie Ihren jenkins-Job konfigurieren ... aber es wird wahrscheinlich so etwas wie $git.branch
sein. Hier ist das Dokument
Ich habe es nicht versucht, also bin ich mir nicht sicher, ob es funktionieren wird.
Wenn mehrere Verzweigungen vorhanden sind, besteht meine Methode darin, immer einen Jenkins-Job pro Zweig zu definieren (die Kopierfunktion von jenkins kann helfen)
BEARBEITEN
Beim Lesen Ihrer Frage ist es schwierig zu sagen, ob Sie Maven benutzen oder nicht, um Sonar auszulösen. Wenn Sie maven nicht verwenden: Es gibt ein project properties
-Feld in der Jenkins-Konfiguration, in dem Sie sonar.branch
definieren können. Hier ist das Dokument
Ich bin mir nicht sicher, ob dies Ihnen bei der automatischen Jenkins-Ausführung hilft, aber um ein mvn-Sonar: Sonar mit dem richtigen Verzweigungssatz auszuführen, können Sie den Befehl ausführen (beachten Sie die umgekehrten Anführungszeichen), wenn Sie in einem Unix sind basierte Umgebung:
%Vor%Haben Sie Build-Parameter verwendet, um den Zweig anzugeben?
Wenn ja, können Sie Sonar einfach sagen, welche Verzweigung es ist, fügen Sie in der Konfigurationsdatei Folgendes hinzu:
%Vor%Dabei ist branch der Name des Build-Parameters.