Installation et utilisation de SonarQube

Introduction

SonarQube est un outil open source pour la gestion de la qualité du code et est une inspection statique du code< / un outil>, utilisant l'architecture B/S, il est principalement utilisé pour gérer la qualité du code source, et peut prendre en charge de nombreux langages informatiques, tels que php, java, C#, go, C/C++, Cobol, JavaScrip, Groovy, etc. Sonar peut détecter votre code grâce à des outils de détection de règles de code tels que PMD, CheckStyle, Findbugs, etc., et vous aider à découvrir les vulnérabilités du code, les bugs, les odeurs et d'autres informations.

La qualité du code peut être détectée à partir de sept dimensions :

1) Distribution de complexité (complexité) : un code trop complexe sera difficile à comprendre

2) Duplications : Le programme contient une grande quantité de code copié et collé, ce qui entraîne un code gonflé. Sonar peut afficher de graves duplications dans le code source.

3) Statistiques de tests unitaires (tests unitaires) : les statistiques et l'affichage de la couverture des tests unitaires, le développement ou les tests peuvent clairement comprendre la couverture du code de test

4) Règles de codage : Vérifiez si le code est conforme aux spécifications via Findbugs, PMD, CheckStyle, etc.

5) Taux de commentaires (commentaires) : S'il y a trop peu de commentaires de code, surtout après des changements de personnel, il sera plus difficile pour d'autres de prendre le relais ; s'il y en a trop, ce sera difficile à lire.

6) Bogues potentiels : Détectez les bogues potentiels via Findbugs, PMD, CheckStyle, etc.

7) Architecture et conception : recherchez des boucles, affichez les dépendances entre les packages et les classes et vérifiez le couplage entre les programmes

Architecture

La plateforme SonarQube se compose de 4 composants :

1) Un serveur SonarQube démarre 3 processus principaux :

  • Serveur Web pour les développeurs et les administrateurs Parcourir les instantanés de qualité et configurer les instances SonarQube

  • Le serveur de recherche basé sur Elasticsearch prend en charge la recherche à partir de l'interface utilisateur

  • Compute Engine Server est responsable du traitement des rapports d'analyse de code et de leur enregistrement dans la base de données SonarQube.

 

2) Une base de données SonarQube pour le stockage :

  • Configuration de l'instance SonarQube (sécurité, paramètres du plugin, etc.)
  • Instantanés de qualité des projets, des vues, etc.

3) Plusieurs plug-ins SonarQube sont installés sur le serveur, notamment la langue, le SCM, l'intégration, l'authentification, etc.

4) Exécutez un ou plusieurs SonarScanners sur votre serveur de build/intégration continue pour analyser le projet

L'intégration

 

1) Les développeurscodent dans leur IDE et exécutent une analyse locale à l'aide de SonarLint.

2) Les développeurs envoient le code vers des référentiels de gestion de code tels que Git

3) Via des serveurs d'intégration continue tels que Jenkens, et utilisez sonar-scanner pour l'analyse du code

4) Le rapport d'analyse est envoyé au serveur SonarQube pour traitement.

5) SonarQube Server traite et stocke les résultats du rapport d'analyse dans la base de données SonarQube et affiche les résultats dans l'interface utilisateur.

6) Les développeurs examinent, commentent et contestent leurs problèmes via l'interface utilisateur de SonarQube pour gérer et réduire leur dette technique.

7) Utilisez l'API pour automatiser la configuration et extraire les données de SonarQube.

Installer le sonar

La version installée dans cet article est SonarQube 7.6. La version la plus élevée actuelle (27 juillet 2021 10:29:21) SonarQube 9.0. Le 10 avril 2019, SonarQube a publié un article indiquant qu'après la 7.9, toutes les versions de SonarQube cesseront de prendre en charge MySQL.

1)SonarQube 7.6

2)java1.8

3)Mysql 5.6

L'installation de CentOs6.9 peut faire référence au Blog

Après l'installation, vous pouvez ouvrir l'URL :

Installer un scanner sonar

Cet article utilise Sonar-scanner pour l'analyse du code

  1. En fonction de l'environnement Téléchargement, cet article prend le système Linux comme exemple

  2. Téléchargez le fichier sonar-scanner-cli-4.6.2.2472-linux.zip sur la machine virtuelle ou le serveur

  3. décompresser

     `unzip sonar-scanner-cli-4.6.2.2472-linux.zip`
  4. Ajoutez sonar-scanner-4.6.2.2472-linux/bin aux variables d'environnement

    • vim /etc/profile
        #配置 sonar-scanner
        SONAR_RUNNER_HOME=/opt/sonar-scanner-4.6.2.2472-linux
        PATH=$SONAR_RUNNER_HOME/bin:$PATH
        export  SONAR_RUNNER_HOME
        export  PATH
    • source /etc/profile
    • sonar-scanner -h Vérifiez si l'ajout a réussi
        INFO: 
        INFO: usage: sonar-scanner [options]
        INFO: 
        INFO: Options:
        INFO:  -D,--define <arg>     Define property
        INFO:  -h,--help             Display help information
        INFO:  -v,--version          Display version information
        INFO:  -X,--debug            Produce execution debug output
  5. Modifier le fichier de configuration du sonar-scanner sonar-scanner-4.6.2.2472-linux/conf

    • vim sonar-scanner.properties

        #Configure here general information about the environment, such as SonarQube server connection details for example
        #No information about specific project should appear here
      
        #----- Default SonarQube server
        sonar.host.url=http://127.0.0.1:10005
      
        #----- Default source code encoding
        #sonar.sourceEncoding=UTF-8
        sonar.jdbc.url=jdbc:mysql://127.0.0.1:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
        #数据库账号
        sonar.jdbc.username=sonar
        #数据库密码
        sonar.jdbc.password=sonar
        sonar.sorceEncoding=UTF-8

      Ce fichier de configuration contient des informations générales sur l'environnement, telles que les détails de connexion au serveur SonarQube. Les informations sur des projets spécifiques ne doivent pas être configurées ici

code des instruments

SonarQube Créer un projet

  1. Ouvrez la page Web SonarQube pour créer un projet

    Installation et utilisation de SonarQube

     

    Installation et utilisation de SonarQube

     

    Installation et utilisation de SonarQube

     

    Installation et utilisation de SonarQube


    Cet article utilise PHP pour l'analyse

Analyser le code à l'aide du Sonar-scanner

  1. Entrez le chemin du projet de code qui doit être analysé

  2. touch sonar-project.properties Créez un fichier dans le chemin du projet,

  3. vim sonar-project.properties

     # must be unique in a given SonarQube instance
     sonar.projectKey=test
    
     # --- optional properties ---
    
     # defaults to project key
     sonar.projectName=test
     # defaults to 'not provided'
     sonar.projectVersion=1.0
    
     # Path is relative to the sonar-project.properties file. Defaults to .
     # 多个路径可以使用逗号隔开
     sonar.sources=./app,./config
    
     # Encoding of the source code. Default is default system encoding
     sonar.sourceEncoding=UTF-8
     #这个具体作用目前不太清除,官网也没写
     sonar.java.binaries=.
     # SonarQube 创建项目生成的令牌
     sonar.login=6c8148e18e76fbc96e73354
    clé décrire
    sonar.projectKey La clé unique du projet. Les caractères autorisés sont : les lettres, les chiffres - , _ , . et : , avec au moins un caractère non numérique.
    sonar.sources Répertoires de fichiers dont le code doit être analysé. Utilisez des virgules pour séparer plusieurs fichiers.
    sonar.projectName Le nom du projet qui sera affiché sur l'interface Web.
    sonar.projectVersion Version du projet
    sonar.connexion Un jeton de connexion ou d'authentification pour un utilisateur SonarQube autorisé à effectuer une analyse sur le projet
    sonar.mot de passe Le mot de passe à utiliser avec le nom d'utilisateur sonar.login. Si un jeton d'authentification est utilisé, il doit rester vide
    sonar.projectDescription instructions de projet
    sonar.sourceEncoding L'encodage du fichier source. Par exemple : UTF-8

    Veuillez vous référer à la documentation officielle pour les paramètres mis à jour 

  4. Exécuter dans le répertoire au même niveau que le fichier sonar-project.properties sonar-scanner

    Installation et utilisation de SonarQube

  5. Affichez la page Web SonarQube, vous pouvez voir que le projet de test a un 后台任务 en cours d'exécution. À ce moment, Sonar-scanner soumet les données au serveur SonarQube, et le SonarQube le serveur analyse les données

    Installation et utilisation de SonarQube

  6. Une fois la tâche en arrière-plan exécutée, vous pouvez afficher les résultats de l'analyse du code

    Installation et utilisation de SonarQube

SonarQube est facile à utiliser

Gestion des utilisateurs

  1. Créer un groupe

    1. Configuration > Autorisations > Groupes > coin supérieur droit

      Installation et utilisation de SonarQube

  2. Créer un utilisateur

    1. Configuration > Autorisations > Utilisateurs > coin supérieur droit

      Installation et utilisation de SonarQube

  3. Ajouter un utilisateur au groupe PHP

    Installation et utilisation de SonarQube

  4. Configurer les permissions du groupe PHP sur le projet de test

    • Projet -> Test Projet -> Configuration -> Autorisations

      Installation et utilisation de SonarQube


      La page des autorisations peut définir le projet actuel comme étant un 公开 projet actif 私有 
      qui peut être attribué à six groupes PHP spécifiques Autorisations
  5. Classification des autorisations spécifiques

    • Parcourir : visitez un projet, parcourez ses métriques, créez/modifiez ses problèmes.
    • Afficher le code source : affichez le code source du projet. (L'utilisateur a également besoin de l'autorisation « Parcourir »)
    • Gestionnaire de problèmes : apportez des modifications supplémentaires aux problèmes : définissez des faux positifs/ne sera pas corrigé, modifiez le niveau de gravité du problème. (L'utilisateur a également besoin de l'autorisation « Parcourir »)
    • Gérer les hotspots de sécurité : Détectez les vulnérabilités via les « hotspots de sécurité ». Rejeter, nettoyer, accepter, rouvrir "Safe Hotspot" (les utilisateurs ont également besoin de l'autorisation "Parcourir")
    • Administrateur : affichez la configuration du projet et effectuez des tâches de gestion. (L'utilisateur a également besoin de l'autorisation « Parcourir »)
    • Exécuter l'analyse : vous pouvez obtenir toutes les configurations pour effectuer une analyse (y compris les configurations de sécurité, telles que les mots de passe) et transmettre les résultats de l'analyse au serveur SonarQube.

configuration de qualité

Une configuration qualité est un ensemble de règles utilisées lors de l’analyse. Chaque langue a une configuration par défaut. Les projets qui ne spécifient pas d'autres configurations utiliseront la configuration par défaut.

Il existe trois configurations de qualité pour PHP après installation Drupal, PSR-2, Sonar way

Installation et utilisation de SonarQube

où Sonar way est la configuration de qualité utilisée par le système par défaut. Vous pouvez voir qu'il existe 111 règles.

Configuration de qualité personnalisée

Si la valeur par défaut du système ne peut pas répondre aux conditions existantes, cliquez sur le bouton 创建 dans le coin supérieur droit

Installation et utilisation de SonarQube


Vous pouvez créer une nouvelle configuration basée sur une configuration de qualité existante ou créer une configuration vide.

Installation et utilisation de SonarQube

  1. Les nouvelles configurations peuvent attribuer des autorisations à des groupes ou des individus
  2. Vous pouvez attribuer la configuration actuelle à un projet spécifique et utiliser cette configuration pour la détection de code
  3. Ajouter plus de règles

    Installation et utilisation de SonarQube

De plus, il existe d'autres configurations de base

Installation et utilisation de SonarQube

seuil de qualité

Le seuil de qualité est équivalent à un seuil de détection de code. Si un problème de code dépasse le seuil, une invite apparaîtra ou une notification par e-mail sera envoyée.
Seuil de qualité par défaut Sonar Way, si un projet ne précise pas de seuil de qualité, ce seuil de qualité sera utilisé par défaut.

Différents seuils de qualité peuvent être créés en fonction de différents projets

Installation et utilisation de SonarQube

  1. Ajouter différents indicateurs en fonction d'exigences spécifiques
  2. Sélectionnez les éléments applicables

Installation et utilisation de SonarQube


Vous pouvez voir bugs que la valeur seuil est définie sur 10 et le code détecte 92. À ce stade, l'état du projet est 错误级别 ( aucun dépassement du seuil n'est  a>正常)

Notification par courrier électronique

SonarQube peut être configuré pour vous rappeler par e-mail lorsque certains événements se produisent.

Activer le service de messagerie SMTP

Démarrez le service dans la boîte aux lettres QQ

Installation et utilisation de SonarQube

  1. Activer le service IMAP/SMTP
  2. Générer un code d'autorisation
Configuration de la boîte aux lettres SonarQube

Vous pouvez utiliser un compte autorisé à modifier les configurations ou un compte administrateur pour configurer les informations de courrier électronique.

Installation et utilisation de SonarQube

Installation et utilisation de SonarQube

Configuration des notifications par e-mail SonarQube

Vous pouvez sélectionner les notifications que vous souhaitez activer sur 我的账号 -> 提醒 

Installation et utilisation de SonarQube

Lorsque de nouvelles questions sont attribuées, des rappels par e-mail seront envoyés

Installation et utilisation de SonarQube

Vous pouvez voir une connexion problématique sous l'e-mail. Le nom de domaine du préfixe de saut peut être configuré dans 配置 

Installation et utilisation de SonarQube

Envoyer un e-mail après la configuration

Installation et utilisation de SonarQube

analyse de branche

La version SonarQube Community ne prend pas en charge l'analyse multi-branches, vous pouvez donc utiliser le sonarqube-community-branch-plugin plug-in de github< /span>

Sélectionnez la version du plugin en fonction de la version de SonarQube

Installation et utilisation de SonarQube

  1. Téléchargez le package jar approprié et placez-le dans le répertoire où vous avez installé SonarQube sonarqube/extensions/plugins

  2. Redémarrez le service SonarQube Service

    Installation et utilisation de SonarQube

  3. Changez la branche dont vous avez besoin pour analyser et modifier le fichier sonar-project.properties sous le projet numérisé

     sonar.projectKey=test
    
      # --- optional properties ---
    
      # defaults to project key
      sonar.projectName=test
      # defaults to 'not provided'
      sonar.projectVersion=1.0
    
      # Path is relative to the sonar-project.properties file. Defaults to .
      sonar.sources=./app,./config
    
      # Encoding of the source code. Default is default system encoding
      sonar.sourceEncoding=UTF-8
      #这个具体作用目前不太清除,官网也没写
      sonar.java.binaries=.
      # SonarQube 创建项目生成的令牌
      sonar.login=7eee3f6b73b5cab929c30f5bca7bc0a8bf84ec25
      # 项目所处分支(一般和 jenkins 结合,通过变量动态修改分支名)
      sonar.branch.name=release-1
  4. sonar-scanner Nouvelle analyse

  5. Vous pouvez voir les informations sur la nouvelle succursale sur la SonarQube Web page

    Installation et utilisation de SonarQube

plusieurs succursales

Les branches de SonarQube peuvent être divisées en

  1. Branche principale : généralement master
  2. Branche à court terme : par rapport à la branche à long terme, le problème de la branche à court terme réside dans les 增量 données
  3. Branches à long terme : branches de maintenance à long terme, telles que les branches de publication et de développement, le stockage des données problématiques 单独 

Si la branche principale n'est pas master, vous pouvez modifier le nom de la branche principale.

Installation et utilisation de SonarQube

Vous pouvez également modifier les règles de correspondance de branche de 长期分支 

Installation et utilisation de SonarQube

Jenkins utilise SonarQube

Installez Jenkins sur Baidu par vous-même

Anso SonarQube Scanner Rapport

Manage Jenkins -> Manage Plugins -> Sonarqube Scanner
 

Installation et utilisation de SonarQube


Redémarrez Jenkins après l'installation

Configuration SonarQube servers

Manage Jenkins -> Configure System -> SonarQube servers
 

Installation et utilisation de SonarQube


Remplissez votre adresse Web SonarQube et créez un 凭证

Informations d'identification ajoutées
  1. SonarQube Web génère un jeton en utilisant le compte administrateur 我的账户 -> 安全

    Installation et utilisation de SonarQube

  2. Ajouter des informations d'identification dans Jenkins

    Installation et utilisation de SonarQube

Configuration SonarQube Scanner

Manage Jenkins -> Global Tool Configuration -> SonarQube Scanner

Installation et utilisation de SonarQube

Créer un projet Jenkins

  1. Créer un nouvel article
     

    Installation et utilisation de SonarQube


    Choisissez un type de style libre à créer

  2. Créer des informations de build
     

    Informations de base


     

    Installation et utilisation de SonarQube

    Paramètres d'information de base-git

    Gestion du code source


     

    Construction

    paramètres de construction

      sonar.projectKey=${JOB_BASE_NAME}
      sonar.projectName=${JOB_BASE_NAME}
      sonar.projectVersion=1.0
      sonar.sources=./app
      sonar.sourceEncoding=UTF-8
      sonar.java.binaries=.
      sonar.branch.name=${Branch}

    Opérations post-construction


    Supprimer l'espace de travail après la création. Ce cas effectue uniquement la détection de code sans opérations ultérieures, vous pouvez donc choisir de supprimer l'espace de travail.

Exécuter le projet

Installation et utilisation de SonarQube


 

Installation et utilisation de SonarQube


Si c'est la première fois que vous l'exécutez, assurez-vous de sélectionner la branche master , sinon cela échouera, car la première branche par défaut de SonarQube Web est master
 

Installation et utilisation de SonarQube

Installation et utilisation de SonarQube

référence

www.cnblogs.com/ycyzharry/p/116890...
www.cnblogs.com/wangxu01/articles/...

Réimprimé de :Installation et utilisation de SonarQube | Forum sur l'exploitation et la maintenance du serveur 

Je suppose que tu aimes

Origine blog.csdn.net/fuhanghang/article/details/135010383
conseillé
Classement