Startseite/Dokumentation/DevOps & CI/CD/SonarQube-Community-Integration

SonarQube-Community-Integration

Verbessern Sie Ihre C/C++-Codequalität mit SonarQube- und CppDepend-Integration

In der heutigen wettbewerbsintensiven Softwareentwicklungslandschaft ist die Sicherstellung von Codequalität und Wartbarkeit für den Erfolg jedes Projekts entscheidend. Die Integration von SonarQube Community Edition mit CppDepend bietet Entwicklern eine leistungsstarke kombinierte Lösung für nahtlose Codeanalyse.

In diesem Leitfaden führen wir Sie durch den Prozess der Integration dieser beiden leistungsstarken Tools, damit Sie die Codequalität und Wartbarkeit Ihres Projekts maximieren und gleichzeitig die technischen Schulden minimieren können. Entdecken Sie, wie diese Integration Ihren Entwicklungsprozess revolutionieren und Ihr Projekt zum Erfolg führen kann.

WICHTIG:

Bevor Sie CppDepend auf einem Computer verwenden, müssen Sie zuerst Ihre SonarQube-Lizenz aktivieren oder Ihren Evaluierungszeitraum beginnen Entpacken Sie dazu einfach die CppDepend-Dateien auf dem Rechner und starten Sie VisualCppDepend.exe einmal. Wenn Ihr Rechner mit dem Internet verbunden ist, durchlaufen Sie einen kurzen Aktivierungsprozess.

Falls Ihr Rechner keine Internetverbindung hat, wird ein alternatives Offline-Aktivierungsverfahren angeboten. Dieser Schritt ist für den Betrieb des SonarQube-CppDepend-Plugins zwingend erforderlich.

Bitte beachten Sie, dass das CppDepend-SonarQube-Plugin mit SonarQube-Versionen 5.6 und höher kompatibel ist.

Plug-in-Voraussetzungen

WICHTIG: Falls für C++ noch keine Erweiterung installiert ist, konsultieren Sie bitte die Dokumentation für die SonarQube-Standalone-Integration.

Installieren Sie die CppDepend-Erweiterung

CppDepend stellt die SonarQube-Erweiterungen bereit in $InstallDir/Integrations/SonarQube

  • Bei Java kopieren Sie sonar-jarchitect-plugin-1.0.jar
  • Bei der C++-SonarQube-Erweiterung kopieren Sie sonar-cxx-cppdepend-sqplugin.jar
  • Im Fall der SonarQube Community-Version 2 und höher kopieren Sie sonar-cxx-cppdepend-community-2.jar
  • Und im Fall der SonarQube Community-Version 1 kopieren Sie sonar-cxx-cppdepend-community-1.jar
  • aus dem $CppDependInstallDir$\Integrations\SonarQube Verzeichnis
  • zum $SonarQubeInstallDir$\extensions\plugins Verzeichnis
  • Starten Sie den SonarQube-Server neu, damit das CppDepend-Plugin berücksichtigt wird.

Konfigurieren Sie das CppDepend-Plug-in

Gehen Sie in der SonarQube-Benutzeroberfläche zu Verwaltung Dazu müssen Sie mit den entsprechenden Administratorrechten angemeldet sein.

SonarQube-Administration
  • OBLIGATORISCH Geben Sie den vollständigen Pfad des CppDepend-SonarQube-Regelscanners an. Für Windows ist es CppDepend.SonarQube.RuleRunner.exe (Windows), CppDepend.SonarQube.RuleRunner (Linux, macOS) aus dem $CppDependInstallPath$\Libs Verzeichnis. Stellen Sie dem Pfad keinen Umgebungsvariablenpfad voran, sondern schreiben Sie den vollständigen absoluten Pfad (befolgen Sie diesen Rat für alle Pfadangaben in dieser Dokumentation).
  • OPTIONAL Geben Sie den Pfad der CppDepend-Projektdatei an (.cdproj Erweiterung), aus der die Regeln geholt werden. Wenn nicht angegeben, wird der Standard-CppDepend-Regelsatz verwendet.
    Wenn Sie den Pfad der CppDepend-Projektdatei angeben, werden die aktivierten Regeln berücksichtigt, die definiert sind in:
    • Die CppDepend-Projektdatei,
    • Regeln, die in den CppDepend-Regeldateien definiert sind, auf die die CppDepend-Projektdatei verweist

Aktivieren Sie die CppDepend-Regeln im Sonar-Server

Die CppDepend-Regeln sind nun im SonarQube-Repository geladen, aber noch nicht aktiviert. Um sie zu aktivieren, müssen Sie:

  • Als Admin in der SonarQube-Benutzeroberfläche anmelden
  • Gehen Sie zu Qualitätsprofile Tab
  • Erstellen Sie ein benutzerdefiniertes Quality Profile. Wenn Sie bereits eines haben, können Sie diesen Schritt überspringen.Qualitätsprofile
  • Stellen Sie sicher, dass Sie das Profil "Sonar way" als übergeordnetes Profil Ihres neuen Quality Profile wählen:Übergeordnetes Profil „Sonar way“
  • Nach dem Erstellen des benutzerdefinierten Quality Profile müssen Sie die CppDepend-Regeln hinzufügen. Klicken Sie dazu auf Mehr aktivieren Schaltfläche:Schaltfläche „Mehr aktivieren“
  • Wählen Sie CppDepend Repository und klicken Sie auf Massenänderung Schaltfläche und aktivieren Sie alle CppDepend-Regeln in Ihrem neuen Quality Profile:Massenänderung von CppDepend-Regeln
  • Gehen Sie schließlich zurück zum Quality-Profile-Tab und setzen Sie das neue Quality Profile als Standard:Standard-Qualitätsprofil festlegen

Aktivieren der CppDepend-Regeln (vor SonarQube v6.X)

  • Als Admin in der SonarQube-Benutzeroberfläche anmelden
  • Gehen Sie zu Regeln Tab
  • Auswählen Sprache C++ und Repository: CppDependRegisterkarte „Regeln“ CppDepend
  • Aktivieren Sie diese Regeln im gewünschten Profil, indem Sie auf Massenänderung – Aktivieren in:Massenänderung aktivieren

WICHTIG:

Beachten Sie, dass der behandeln einer Regel ist der Regelname zusammen mit den Namen der übergeordneten Gruppe(n) und dem Regelquellcode. Diese Anmerkung ist wichtig in der Situation, wenn:

  • Das für die Analyse verwendete CppDepend-Projekt enthält einen benutzerdefinierten Regelsatz
  • Das CppDepend-Projekt, das in der SonarQube-Konfiguration angegeben wird, um die Regeln im SonarQube-System zu definieren (Parameter CppDepend-Regeln aus cdproj, siehe vorheriger Abschnitt) unterscheidet sich vom CppDepend-Projekt, das für die Analyse verwendet wird.

In einer solchen Situation werden die Regeln im SonarQube-System nicht aufgelöst und die Probleme nicht berechnet, wenn die beiden Regelsätze nicht exakt übereinstimmen.

Falls in Ihrem benutzerdefinierten Regelsatz Regeln hinzugefügt oder entfernt wurden:

  1. Starten Sie den SonarQube-Server neu, damit er das in der SonarQube-Konfiguration angegebene CppDepend-Projekt parst, um die Regeln zu definieren
  2. Gehen Sie erneut in Regeln Registerkarte als Administrator angemeldet, um diese neuen/entfernten Regeln gegebenenfalls über Massenänderung Aktion.

Sonar-Scanner ausführen

Hier ist SonarQube-Dokumentation zum Ausführen von Sonar-Scanner über das Befehlszeilenargument.

Der Parameter der CppDepend-Projektdatei ist obligatorisch -D sonar.cpp.cppdepend.projectPath={'{'}the path of cdproj{'}'}.

>sonar-scanner -D sonar.cpp.cppdepend.projectPath={der Pfad der cdproj}

Sie können den CppDepend-Scanner auch über die Befehlszeile angeben, falls dies nicht in der SonarQube-Erweiterungskonfiguration erfolgt ist

C/C++ unter Windows

>sonar-scanner -Dsonar.cpp.cppdepend.projectPath={der Pfad der cdproj} -Dsonar.cpp.cppdepend.ruleRunnerPath={CppDependInstallDir\Libs\CppDepend.SonarQube.RuleRunner.exe}

C/C++ unter Linux/macOS

>sonar-scanner -Dsonar.cpp.cppdepend.projectPath={der Pfad der cdproj} -Dsonar.cpp.cppdepend.ruleRunnerPath={CppDependInstallDir/libs/CppDepend.SonarQube.RuleRunner}

Java unter Windows

>sonar-scanner -Dsonar.java.jarchitect.projectPath={der Pfad der jdproj} -Dsonar.java.jarchitect.ruleRunnerPath={CppInstallDir\Libs\JArchitect.SonarQube.RuleRunner.exe}

Java unter Linux/macOS

>sonar-scanner -Dsonar.java.jarchitect.projectPath={der Pfad der jdproj} -Dsonar.java.jarchitect.ruleRunnerPath={CppInstallDir/libs/JArchitect.SonarQube.RuleRunner}

Tipp: Verwenden Sie keine Umgebungsvariablen in Pfaden, und wenn der Pfad ein Leerzeichen enthält, setzen Sie ihn in doppelte Anführungszeichen -Dsonar.cpp.cppdepend.projectPath="C:\work with space\project.cdproj"

CppDepend-Regel-Issues in der SonarQube-UI durchsuchen

  • CppDepend-Regel-Issues werden nun wie alle Issues in der SonarQube-UI gemeldet.
  • Sie können es durchsuchen, zur Quellcode-Deklaration springen (in der UI), es zuweisen, seinen Status ändern...CppDepend-Probleme in der SonarQube-Benutzeroberfläche

HINWEISE:

Falls einige Issues in der SonarQube-UI fehlen:

  • Prüfen Sie, ob Sie alle in diesem Dokument erklärten Schritte zur Regelaktivierung befolgt haben.
  • Prüfen Sie dann doppelt, ob die betreffende Regel tatsächlich aktiviert ist, indem Sie kontrollieren, ob sie mindestens ein Issue ausgibt.
  • In einem solchen Fall fehlen einige Probleme, weil die Quelldatei-Deklaration ihrer übergeordneten Typen nicht gefunden wurde. Typischerweise passiert dies bei Typen und ihren Membern, die vom Compiler generiert wurden.

Testen Sie CppDepend noch heute

Starten Sie Ihre 14-tägige kostenlose Testversion mit vollem Zugriff auf alle Dokumentationsfunktionen. Keine Kreditkarte erforderlich.