1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SonarLintにおける静的コード解析をSonarQubeサーバで実施する

Last updated at Posted at 2021-10-08

はじめに

SonarQubeサーバ上で静的コード解析をしつつ、コーディング中にも同様の解析が行えるようにするため、VS Codeの拡張機能である、「SonarLint」を使っていました。
しかし、SonarQubeサーバ上でコード解析ルールのチューニングを行っていたため、以下の問題が発生しました。

  • SonarQubeサーバとSonarLint上で、検知するBug, Code Smellに差異がある

そこで、SonarLintにおける静的コード解析をSonarQubeサーバで実施することで、問題を解消することにしました。

設定導入時のバージョン

  • SonarQubeサーバ: 8.3.1.34397
  • VS Code: 1.59.1
  • SonarLint: 2.3.0
  • mac: 11.6

設定

実際に各ツール上で設定を行っていきます

SonarQubeサーバ

アクセストークン発行

SonarQubeサーバでは、当該サーバと接続するための、アクセストークンを発行します。
今回は、admin権限を持つユーザでアクセストークン発行を実施しました。

  1. アクセストークン発行対象ユーザ選択
    1. admin権限でログイン
    2. 画面上部の「Administration」をクリック
    3. Administrationメニュー内の「Security - Users」をクリック
    4. トークンを発行したいユーザの「Tokens」列に記載の「三」を選択する(画像赤枠参照)1.ping
  2. アクセストークン発行
    1. 発行するアクセストークンにつける任意の名称を入力し、「Generate」ボタンをクリック
    2. トークン文字列を控えておく

警告
アクセストークンの発行後、画面を閉じるとトークン文字列は再閲覧不可なので注意してください。

SonarLint(VS Code)

SonarLint(VS Code)では、発行したアクセストークンを利用して、sonarQubeサーバと接続を行うための設定をします。
sonarQubeサーバ上に複数のプロジェクトがあり、それぞれ使用言語やルールが異なる場合を鑑み、VS Code上のワークスペースとsonarQubeサーバのプロジェクトを紐付けます。

  • SonarQubeサーバと接続
    1. ユーザー設定ファイルの編集
      1. コマンドパレットを開いて(cmd+shift+p)「>Open Settings」と入力し、setting.jsonを開く
      2. 下記の設定を追加する
  "sonarlint.connectedMode.connections.sonarqube": [
    {
      "serverUrl": "自身のSonarQubeサーバのURL",
      "token": "発行したトークン文字列"
    }
  ]
  • SonarQubeサーバ上の各プロジェクトとの連結
    1. ワークスペース設定ファイルの編集
      1. <プロジェクトルート>/.vscode/settings.jsonを開く
      2. 下記の設定を追加する
  "sonarlint.connectedMode.project": {
    "projectKey": "SonarQubeサーバ上のプロジェクトキー"
  }

SonarQubeサーバ上のプロジェクトキーは、sonarQubeサーバ上で確認ができます。

  1. admin権限でログイン
  2. 画面上部の「Administration」をクリック
  3. Administrationメニュー内の「Projects - Management」をクリック
  4. Key列に記載の値をコピペ

ワークスペース設定ファイルにSonarQubeサーバの接続情報を記載することも可能です。
ただし、当該ファイルをgit管理している場合、SonarQubeサーバの接続情報がリモートリポジトリに格納されることは留意してください。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?