しおしお

IntelliJ IDEAのことなんかを書いてます

Gradleのsonarqubeプラグインを使ってみる

Analyzing with SonarQube Scanner for Gradle - Scanners - Doc SonarQubeを使ってGradleなプロジェクトの品質チェックを行う方法。

sonarqubeプラグインを導入する

Gradleのbuildスクリプトに以下を追加する。(バージョンは現時点での最新)

plugins {
  id "org.sonarqube" version "2.5"
}

※sonarqubeプラグインに対する設定値などはこちら→SonarQube properties
なお、Gradleのデフォルト構成のプロジェクトの場合は基本設定は不要。

カバレッジを取得する場合はjacocoプラグインも導入する

カバレッジ情報をsonarqubeに連携する場合には、gradleにjacocoプラグインを追加してあげる。

apply plugin: "jacoco"

sonarqubeの場所をgradle.propertiesに設定する

systemProp.sonar.host.url=http://localhost:9000

sonarqubeタスクを実行する

sonarqubeタスクを実行する。jacoco.reportPathが非推奨と言われるけど、これはsonarqubeプラグインのデフォルト設定なやつなので、次回以降のバージョンアップで解消するのではと思う。

./gradlew clean sonarqube
:clean
:compileJava
:processResources NO-SOURCE
:classes
:compileTestJava
:processTestResources NO-SOURCE
:testClasses
:test
:sonarqube
Property 'sonar.jacoco.reportPath' is deprecated. Please use 'sonar.jacoco.reportPaths' instead.

BUILD SUCCESSFUL

sonarqubeで見てみると

こんな感じに結果が見れる。
f:id:sioiri:20170722065139p:plain

sonarqubeを用意するのにつかったcomposeファイル

postgresql:
  image: postgres
  ports:
    - "5432:5432"
  environment:
    - POSTGRES_USER=sonar
    - POSTGRES_PASSWORD=sonar
    - POSTGRES_DB=sonar
sonarqube:
  image: sonarqube
  ports:
    - "9000:9000"
    - "9092:9092"
  environment:
    - SONARQUBE_JDBC_USERNAME=sonar
    - SONARQUBE_JDBC_PASSWORD=sonar
    - SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql/sonar
  links:
    - postgresql


おわり。