Accueil/Docs/DevOps & CI/CD/Intégration SonarQube Community

Intégration SonarQube Community

Améliorez la qualité de votre code C/C++ avec l'intégration SonarQube et CppDepend

Dans le paysage concurrentiel du développement logiciel actuel, garantir la qualité et la maintenabilité du code est essentiel au succès de tout projet. L'intégration de SonarQube Community Edition avec CppDepend offre aux développeurs une solution combinée puissante pour une analyse de code fluide.

Dans ce guide, nous vous accompagnerons à travers le processus d'intégration de ces deux outils puissants, vous permettant de maximiser la qualité et la maintenabilité du code de votre projet tout en minimisant la dette technique. Découvrez comment cette intégration peut révolutionner votre processus de développement et préparer votre projet au succès.

IMPORTANT :

Avant d'utiliser CppDepend sur une machine, vous devez d'abord activer votre licence SonarQube ou commencer votre période d’évaluation Pour cela, décompressez simplement les fichiers CppDepend sur la machine et lancez VisualCppDepend.exe une fois. Si votre machine est connectée à Internet, vous passerez par un bref processus d'activation.

Si votre machine n'a pas de connexion Internet, une procédure d'activation hors ligne alternative vous sera proposée. Cette étape est obligatoire pour utiliser le plugin SonarQube CppDepend.

Veuillez noter que le plugin SonarQube CppDepend est compatible avec les versions 5.6 et supérieures de SonarQube.

Prérequis du plugin

IMPORTANT : Si aucune extension C++ existante n'est déjà installée, veuillez consulter la documentation de l’intégration SonarQube Standalone.

Installez l’extension CppDepend

CppDepend fournit les extensions SonarQube dans $InstallDir/Integrations/SonarQube

  • Pour Java, copiez le sonar-jarchitect-plugin-1.0.jar
  • Pour l’extension SonarQube C++, copiez le sonar-cxx-cppdepend-sqplugin.jar
  • Dans le cas de la version communautaire SonarQube 2 et supérieure, copiez sonar-cxx-cppdepend-community-2.jar
  • Et dans le cas de la version communautaire SonarQube 1, copiez sonar-cxx-cppdepend-community-1.jar
  • depuis le $CppDependInstallDir$\Integrations\SonarQube répertoire
  • au $SonarQubeInstallDir$\extensions\plugins répertoire
  • Redémarrez le serveur SonarQube pour qu'il prenne en compte le plugin CppDepend.

Configurez le plugin CppDepend

Dans l’interface SonarQube, allez à Administration Vous devez être connecté avec les privilèges administrateur appropriés pour cela.

Administration SonarQube
  • OBLIGATOIRE Spécifiez le chemin complet du scanner de règles SonarQube CppDepend. Sous Windows, c'est CppDepend.SonarQube.RuleRunner.exe (Windows), CppDepend.SonarQube.RuleRunner (Linux, macOS) depuis le $CppDependInstallPath$\Libs répertoire. Ne préfixez pas le chemin avec un chemin de variable d'environnement, écrivez le chemin absolu complet (suivez ce conseil pour toutes les écritures de chemins que vous trouverez dans cette documentation).
  • OPTIONNEL Spécifiez le chemin du fichier projet CppDepend (.cdproj extension) depuis lesquels récupérer les règles. S'il n'est pas spécifié, l'ensemble de règles CppDepend par défaut sera utilisé.
    Si vous spécifiez le chemin du fichier projet CppDepend, les règles prises en compte sont les règles activées définies dans :
    • Le fichier projet CppDepend,
    • Règles définies dans les fichiers de règles CppDepend référencés par le fichier projet CppDepend

Activez les règles CppDepend dans le serveur Sonar

Les règles CppDepend sont maintenant chargées dans le dépôt SonarQube mais pas encore activées. Pour les activer, vous devez :

  • Connectez-vous en admin dans l’interface SonarQube
  • Allez à Profils de qualité onglet
  • Créez un Quality Profile personnalisé. Si vous en avez déjà un, vous pouvez ignorer cette étape.Profils de qualité
  • Assurez-vous de choisir le profil Sonar way comme parent de votre nouveau Quality Profile :Profil parent « Sonar way »
  • Après la création du Quality Profile personnalisé, vous devez ajouter les règles CppDepend. Pour cela, cliquez sur Activer plus bouton :Bouton Activer plus
  • Choisissez le CppDepend dépôt, et cliquez sur le Modification en masse bouton et activez toutes les règles CppDepend dans votre nouveau Quality Profile :Modification en masse des règles CppDepend
  • Enfin, revenez à l'onglet Quality Profile et définissez le nouveau Quality Profile comme Par défaut:Définir le profil de qualité par défaut

Activer les règles CppDepend (avant SonarQube v6.X)

  • Connectez-vous en admin dans l’interface SonarQube
  • Allez à Règles onglet
  • Choisir Langage C++ et Dépôt : CppDependOnglet Règles CppDepend
  • Activez ces règles dans le profil souhaité en cliquant sur Modification en masse – Activer dans:Activer la modification en masse

IMPORTANT :

Notez que le gérer d'une règle est le nom de la règle avec aussi les noms des groupes parents et le code source de la règle. Cette remarque est importante dans la situation où :

  • Le projet CppDepend utilisé pour l'analyse contient un ensemble de règles personnalisé
  • Le projet CppDepend spécifié dans la configuration SonarQube pour définir les règles dans le système SonarQube (paramètre Règles CppDepend depuis cdproj, voir la section précédente) est différent du projet CppDepend utilisé pour l'analyse.

Dans une telle situation, si les deux ensembles de règles ne correspondent pas exactement, les règles ne seront pas résolues dans le système SonarQube et les problèmes ne seront pas calculés.

Si des règles ont été ajoutées ou supprimées dans votre ensemble de règles personnalisé :

  1. Redémarrez le serveur SonarQube pour qu'il analyse le projet CppDepend spécifié dans la configuration SonarQube afin de définir les règles
  2. Retournez dans le Règles onglet connecté en tant qu'administrateur, pour activer/désactiver ces règles ajoutées/supprimées via éventuellement Modification en masse action.

Exécuter Sonar-Scanner

Voici le Documentation SonarQube concernant l'exécution de Sonar-Scanner depuis la ligne de commande.

Le paramètre du fichier projet CppDepend est obligatoire -D sonar.cpp.cppdepend.projectPath={'{'}the path of cdproj{'}'}.

>sonar-scanner -D sonar.cpp.cppdepend.projectPath={le chemin du cdproj}

Vous pouvez aussi spécifier le scanner CppDepend depuis la ligne de commande si ce n'est pas fait dans la configuration de l'extension SonarQube

C/C++ sous Windows

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

C/C++ sous Linux/macOS

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

Java sous Windows

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

Java sous Linux/macOS

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

Astuce : N'utilisez aucune variable d'environnement dans les chemins, et si le chemin contient un espace, entourez-le de guillemets doubles -Dsonar.cpp.cppdepend.projectPath="C:\work with space\project.cdproj"

Parcourir les problèmes des règles CppDepend dans l'interface SonarQube

  • Les problèmes des règles CppDepend sont désormais rapportés comme tout problème dans l'interface SonarQube.
  • Vous pouvez le parcourir, aller à la déclaration dans le code source (dans l'UI), l'assigner, changer son statut...Problèmes CppDepend dans l’interface SonarQube

REMARQUES :

Si certains problèmes manquent dans l'interface SonarQube :

  • Vérifiez que vous avez suivi toutes les étapes d'activation des règles expliquées dans ce document.
  • Vérifiez ensuite que la règle concernée est bien activée en contrôlant qu'elle émet au moins un problème.
  • Dans un tel cas, si certains problèmes sont manquants, c'est parce que la déclaration dans le fichier source de leurs types parents n'a pas été trouvée. Cela se produit généralement avec les types et leurs membres générés par le compilateur.

Essayez CppDepend aujourd'hui

Commencez votre essai gratuit de 14 jours avec accès complet à toutes les fonctionnalités de documentation. Sans carte bancaire.