8
10

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 5 years have passed since last update.

SonarQube を使って5分で試す継続的インスペクション

Posted at

sonarqube-projects.png

Java・JavaScript・C#・Python・PHP など20言語以上(一部有料)に対応した継続的インスペクションツールの SonarQube を5分以内にローカル環境で試す方法をメモっとく。

なお本稿は macOS 環境を前提にしている。

SonarQube をインストールする

Homebrew で SonarQube をインストールする。

$ brew install sonarqube

SonarQube を起動する

SonarQube は brew services start sonarqube で起動できる。

$ brew services start sonarqube
==> Successfully started `sonarqube` (label: homebrew.mxcl.sonarqube)

SonarQube のダッシュボードにアクセスする

SonarQube のダッシュボードにブラウザーからアクセスしてみる。初回のアクセスは少し時間がかかる。

sonarqube-dashboard.png

SonarQube Scanner をインストールする

Homebrew で SonarQube Scanner をインストールする。SonarQube Scanner がプロジェクトを解析して解析結果を SonarQube に登録してくれる。

$ brew install sonar-scanner

サンプルプロジェクトを解析する

Martin Fowler 著『リファクタリング』の例題である VideoStore をベースにした Java のサンプルプロジェクトをクローンして SonarQube Scanner で解析してみる。

$ git clone https://github.com/takuya0301/videostore.git
$ cd videostore
$ ./gradlew test
$ sonar-scanner \
    -Dsonar.projectKey=videostore \
    -Dsonar.sources=src/main \
    -Dsonar.tests=src/test \
    -Dsonar.jacoco.reportPaths=build/jacoco/test.exec \
    -Dsonar.java.binaries=build/classes

解析パラメーター

キー 説明
sonar.projectKey プロジェクトキーはプロジェクトごとにユニークな値を指定する。
sonar.sources ソースファイルが含まれるディレクトリをコンマ区切りのパスとして指定する。
sonar.tests テストファイルが含まれるディレクトリをコンマ区切りのパスとして指定する。
sonar.jacoco.reportPaths Java のコードカバレッジライブラリである Jacoco が生成するレポートファイルへのパスを指定する。
sonar.java.binaries コンパイルされたバイトコードファイルが含まれるディレクトリをコンマ区切りのパスとして指定する。

サンプルプロジェクトの解析結果を確認する

SonarQube にブラウザーからアクセスすることでサンプルプロジェクトの解析結果を確認できる。

sonarqube-videostore.png


SonarQube を5分以内にローカルで実行してサンプルプロジェクトを解析する方法を説明した。SonarQube を操作してみたり、ほかのプロジェクトを解析してみたりして導入を検討してみるといいんじゃないかな。SonarQube Scanner は Jenkins などの CI ツール用のプラグインもあるので、実運用するときは CI ツールと連携するように設定することをオススメする。Jenkins 連携についても気が向いたら記事にしよう。

参考文献

8
10
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
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?