SonarQube のインストールと使用

導入

SonarQube は、コード品質管理のためのオープンソースツールであり、静的コード検査です。 a> ツールは、B/S アーキテクチャを使用しており、主にソース コードの品質を管理するために使用され、php、java、C#、go、C/C++、Cobol、などの多くのコンピューター言語をサポートできます。 JavaScrip、Groovy など。 sonar は、PMD、CheckStyle、Findbugs などのコード ルール検出ツールを通じてコードを検出し、コードの脆弱性、バグ、臭気、その他の情報の発見に役立ちます。

コードの品質は、次の 7 つの側面から検出できます。

1) 複雑さの分布 (complexity): コードが複雑すぎると理解するのが難しくなります。

2) 重複: プログラムには大量のコピー アンド ペーストされたコードが含まれており、その結果コードが肥大化しており、Sonar ではソース コード内の重大な重複が表示される場合があります。

3) 単体テスト統計 (単体テスト): 単体テストのカバレッジを統計的に表示し、開発またはテストでテストコードのカバレッジを明確に把握できます。

4) コーディングルール: コードが仕様に準拠しているかどうかを Findbugs、PMD、CheckStyle などを通じて確認します。

5) コメント率(コメント):コードコメントが少なすぎると、特に人事異動後は他の人が引き継ぎにくくなり、多すぎると読みにくくなります。

6) 潜在的なバグ: Findbugs、PMD、CheckStyle などを通じて潜在的なバグを検出します。

7) アーキテクチャと設計: ループを見つけ、パッケージとクラス間の依存関係を表示し、プログラム間の結合を確認します。

建築

SonarQube プラットフォームは 4 つのコンポーネントで構成されます。

1) SonarQube サーバーは 3 つの主要プロセスを開始します。

  • 開発者、管理者用の Web サーバー高品質のスナップショットを参照し、SonarQube インスタンスを構成する

  • Elasticsearch ベースの検索サーバーは UI からの検索をサポートします

  • Compute Engine サーバーは、コード分析レポートを処理し、SonarQube データベースに保存する役割を果たします。

 

2) ストレージ用の SonarQube データベース:

  • SonarQube インスタンスの構成 (セキュリティ、プラグイン設定など)
  • プロジェクト、ビューなどの高品質のスナップショット。

3) 言語、SCM、統合、認証などを含む複数の SonarQube プラグインがサーバーにインストールされます。

4) ビルド/継続的統合サーバー上で 1 つ以上の SonarScanner を実行してプロジェクトを分析します

統合

 

1) 開発者は IDE でコーディングし、SonarLint を使用してローカル分析を実行します。

2) 開発者は、Git などのコード管理リポジトリにコードをプッシュします。

3) Jenkens などの継続的統合サーバーを通じて、 sonar-scanner コード分析に使用します

4) 分析レポートは、処理のために SonarQube サーバーに送信されます。

5) SonarQube Server は、分析レポートの結果を処理して SonarQube データベースに保存し、結果を UI に表示します。

6) 開発者は、SonarQube UI を通じて問題をレビューし、コメントし、異議を申し立て、技術的負債を管理および削減します。

7) API を使用して構成を自動化し、SonarQube からデータを抽出します。

ソナーを設置する

この記事でインストールされているバージョンは SonarQube 7.6 です。現在の最高バージョン (2021 年 7 月 27 日 10:29:21) SonarQube 9.0。2019 年 4 月 10 日に、SonarQube は 7.9 以降、すべての SonarQube バージョンのサポートが停止されるという記事を発行しました。 MySQL。

1)SonarQube 7.6

2)Java 1.8

3)Mysql5.6

CentOs6.9 のインストールについては ブログを参照してください。

インストール後、次の URL を開くことができます。

ソナースキャナーをインストールする

この記事ではコード分析に Sonar-scanner を使用します

  1. 環境に応じて ダウンロードします。この記事では Linux システムを例として取り上げます

  2. sonar-scanner-cli-4.6.2.2472-linux.zip ファイルを仮想マシンまたはサーバーにアップロードします。

  3. 解凍する

     `unzip sonar-scanner-cli-4.6.2.2472-linux.zip`
  4. sonar-scanner-4.6.2.2472-linux/bin を環境変数に追加します

    • 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 追加が成功したかどうかを確認する
        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. ソナースキャナ設定ファイルを変更する 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

      この構成ファイルは、SonarQube サーバー接続の詳細など、環境に関する一般情報です。特定のプロジェクトに関する情報をここで構成しないでください

計測コード

SonarQube プロジェクトの作成

  1. SonarQube Web ページを開いてプロジェクトを作成します

    SonarQube のインストールと使用

     

    SonarQube のインストールと使用

     

    SonarQube のインストールと使用

     

    SonarQube のインストールと使用


    この記事では分析に PHP を使用しています

ソナースキャナーを使用してコードを分析する

  1. 分析する必要があるコードプロジェクトのパスを入力してください

  2. touch sonar-project.properties プロジェクトパスにファイルを作成し、

  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
    説明する
    sonar.projectKey プロジェクトの一意のキー。使用できる文字は、文字、数字 - 、_、.、および : であり、少なくとも 1 つの数字以外の文字が含まれます。
    ソナーソース コード分​​析が必要なファイル ディレクトリ。複数のファイルを区切るにはカンマを使用します。
    ソナー.プロジェクト名 Web インターフェイスに表示されるプロジェクト名。
    sonar.projectVersion プロジェクトのバージョン
    ソナー.ログイン プロジェクトで分析を実行する権限を持つ SonarQube ユーザーのログイン トークンまたは認証トークン
    ソナーのパスワード sonar.login ユーザー名とともに使用するパスワード。認証トークンが使用されている場合は、空白のままにする必要があります
    ソナー.プロジェクトの説明 プロジェクトの指示
    sonar.sourceEncoding ソースファイルのエンコーディング。例: UTF-8

    更新されたパラメータについては公式ドキュメントを参照してください。 

  4. sonar-project.properties ファイルと同じレベルのディレクトリで実行します。 sonar-scanner

    SonarQube のインストールと使用

  5. SonarQube Web ページを表示すると、テスト プロジェクトが 后台任务 実行されていることがわかります。この時点で、Sonar-scanner はデータを SonarQube サーバーに送信し、SonarQubeサーバーはデータを分析します

    SonarQube のインストールと使用

  6. バックグラウンドタスクの実行後、コード分析結果を表示できます。

    SonarQube のインストールと使用

SonarQubeは使いやすいです

ユーザー管理

  1. グループを作る

    1. [設定] > [権限] > [グループ] > 右上隅

      SonarQube のインストールと使用

  2. ユーザーを作成

    1. [設定] > [権限] > [ユーザー] > 右上隅

      SonarQube のインストールと使用

  3. ユーザーをPHPグループに追加

    SonarQube のインストールと使用

  4. テスト プロジェクトに対する PHP グループの権限を構成する

    • プロジェクト -> テスト プロジェクト -> 構成 -> 権限

      SonarQube のインストールと使用


      権限ページでは、現在のプロジェクトを 公开 ライブ 私有 プロジェクト
      に設定でき、これを割り当てることができます。 6 つの特定の PHP グループ 権限
  5. 特定の許可の分類

    • 参照: プロジェクトにアクセスし、そのメトリクスを参照し、問題を作成/編集します。
    • ソース コードの表示: プロジェクトのソース コードを表示します。 (ユーザーには「参照」権限も必要です)
    • 問題マネージャー: 問題を追加編集します。誤検知/修正されないように設定し、問題の重大度レベルを変更します。 (ユーザーには「参照」権限も必要です)
    • セキュリティ ホットスポットの管理: 「セキュリティ ホットスポット」を通じて脆弱性を検出します。 「安全なホットスポット」を拒否、クリーンアップ、受け入れ、再度開きます (ユーザーには「参照」権限も必要です)
    • 管理者: プロジェクト構成を表示し、管理タスクを実行します。 (ユーザーには「参照」権限も必要です)
    • 分析の実行: 分析を実行するためのすべての設定 (パスワードなどのセキュリティ設定を含む) を取得し、分析結果を SonarQube サーバーにプッシュできます。

品質構成

品質構成は、分析中に使用される一連のルールです。各言語にはデフォルト設定があります。他の構成を指定しないプロジェクトでは、デフォルトの構成が使用されます。

インストール後の PHP の品質構成は 3 つあります。 DrupalPSR-2Sonar way

SonarQube のインストールと使用

ここで、 Sonar way はシステムによってデフォルトで使用される品質設定です。111 個のルールがあることがわかります。

カスタム品質構成

システムのデフォルトが既存の条件を満たさない場合は、右上隅にある 创建 ボタンをクリックします

SonarQube のインストールと使用


既存の品質構成に基づいて新しい構成を作成することも、空の構成を作成することもできます。

SonarQube のインストールと使用

  1. 新しい構成では、グループまたは個人に権限を割り当てることができます
  2. 現在の構成を特定のプロジェクトに割り当て、この構成をコード検出に使用できます。
  3. さらにルールを追加する

    SonarQube のインストールと使用

さらに、他にもいくつかの基本的な構成があります

SonarQube のインストールと使用

品質のしきい値

品質しきい値はコード検出しきい値と同じです。コードの問題がしきい値を超えると、プロンプトが表示されるか、電子メール通知が送信されます。
デフォルトの品質しきい値 Sonar Way。プロジェクトで品質しきい値が指定されていない場合、この品質しきい値がデフォルトで使用されます。

さまざまなプロジェクトに基づいてさまざまな品質しきい値を作成できます

SonarQube のインストールと使用

  1. 特定の要件に基づいてさまざまなインジケーターを追加します
  2. 該当する項目を選択してください

SonarQube のインストールと使用


 bugs では、しきい値が 10 に設定されており、コードが 92 を検出していることがわかります。この時点で、プロジェクトのステータスは 错误级别 (しきい値を超えることはできません  a>正常)

電子メール通知

SonarQube は、何らかのイベントが発生したときに電子メールで通知するように設定できます。

電子メール SMTP サービスを有効にする

QQメールボックスでサービスを開始する

SonarQube のインストールと使用

  1. IMAP/SMTPサービスを有効にする
  2. 認証コードを生成する
SonarQube メールボックスの構成

構成を変更する権限を持つアカウントを使用することも、管理者アカウントを使用して電子メール情報を構成することもできます。

SonarQube のインストールと使用

SonarQube のインストールと使用

SonarQube の電子メール通知設定

オンにする通知は 我的账号 -> 提醒 で選択できます。

SonarQube のインストールと使用

新しい質問が割り当てられると、電子メールでリマインダーが送信されます

SonarQube のインストールと使用

メールの下に問題のある接続が表示されます。ジャンプ プレフィックス ドメイン名は 配置  で設定できます。

SonarQube のインストールと使用

設定後に電子メールを送信する

SonarQube のインストールと使用

ブランチスキャン

SonarQube Community バージョンはマルチブランチ スキャンをサポートしていないため、Github の sonarqube-community-branch-plugin プラグインを使用できます。 /span>

SonarQube バージョンに基づいてプラグイン バージョンを選択します

SonarQube のインストールと使用

  1. 適切な jar パッケージをダウンロードし、SonarQube をインストールしたディレクトリに置きます。 sonarqube/extensions/plugins

  2. SonarQube Service サービスを再起動します。

    SonarQube のインストールと使用

  3. 分析する必要があるブランチを切り替え、スキャンされたプロジェクトの下の sonar-project.properties ファイルを変更します。

     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 再スキャン

  5. 新しいブランチの情報は SonarQube Web ページで確認できます。

    SonarQube のインストールと使用

複数の支店

SonarQube のブランチは次のように分類できます。

  1. メインブランチ: 通常は master
  2. 短期ブランチ: 長期ブランチと比較して、短期ブランチの問題は 增量 データです。
  3. 長期ブランチ: リリース ブランチや開発ブランチなどの長期メンテナンス ブランチ、問題データ 单独 ストレージ

メイン ブランチがマスターではない場合は、メイン ブランチの名前を変更できます。

SonarQube のインストールと使用

 长期分支  のブランチ マッチング ルールを変更することもできます。

SonarQube のインストールと使用

Jenkins は SonarQube を使用します

Baidu に Jenkins を自分でインストールする

安装 SonarQube Scanner 插件

Manage Jenkins -> Manage Plugins -> Sonarqube Scanner
 

SonarQube のインストールと使用


インストール後に Jenkins を再起動します

構成 SonarQube servers

Manage Jenkins -> Configure System -> SonarQube servers
 

SonarQube のインストールと使用


SonarQube Web アドレスを入力し、 凭证

認証情報が追加されました
  1. SonarQube Web は管理者アカウントを使用してトークンを生成します 我的账户 -> 安全

    SonarQube のインストールと使用

  2. Jenkins に認証情報を追加する

    SonarQube のインストールと使用

構成 SonarQube Scanner

Manage Jenkins -> Global Tool Configuration -> SonarQube Scanner

SonarQube のインストールと使用

Jenkins プロジェクトを作成する

  1. 新しいアイテムを作成する
     

    SonarQube のインストールと使用


    作成するフリースタイル タイプを選択してください

  2. ビルド情報の作成
     

    基本情報


     

    SonarQube のインストールと使用

    基本情報 - gitパラメータ

    ソースコード管理


     

    構築する

    ビルドパラメータ

      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}

    ビルド後の操作


    ビルド後にワークスペースを削除します。この場合、コード検出のみが実行され、その後の操作は行われないため、ワークスペースの削除を選択できます。

プロジェクトを実行する

SonarQube のインストールと使用


 

SonarQube のインストールと使用


初めて実行する場合は、必ず master ブランチを選択してください。そうしないと失敗します。これは、SonarQube Web のデフォルトの最初のブランチが  であるためです。master
 

SonarQube のインストールと使用

SonarQube のインストールと使用

参考

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

転載元:SonarQube のインストールと使用 | サーバーの運用と保守のフォーラム 

おすすめ

転載: blog.csdn.net/fuhanghang/article/details/135010383