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