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で見てみると
こんな感じに結果が見れる。
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
おわり。