External inspections support - Help | Upsource を参考にやってみました。
SonarQubeにUpsourceに連携するための拡張をインストールする
upsource-sonar-plugin-0.1-SNAPSHOT.jarをダウンロードして、
$SONARQUBE_HOME/extensions/pluginsにおいてあげます。
SonarQubeを再起動するとこんな感じに管理画面にUpsource Integrationが表示されます。
Gradleなプロジェクトにもろもろの設定を追加する
Gradleのsonarqubeプラグインを導入します。
plugins { id "org.sonarqube" version "2.6.2" }
SonarQubeの結果をUpsourceに連携するには、VCSのリビジョン番号が必要になるので、
build.gradleの中で以下のように取得してシステムプロパティにせっていして
def revision = 'git rev-parse HEAD'.execute().text.trim() System.setProperty("sonar.upsource.revision", revision)
ドキュメントにあるように、Upsouceに連携するための情報をプロジェクト直下のgradle.propertiesに設定します。
revisionは、build.gradleで設定しているのでここでは設定不要です。
# sonarqubeの情報 systemProp.sonar.host.url=http://localhost:9000 # upsourceの情報 systemProp.sonar.upsource.url=http://localhost:8080 systemProp.sonar.upsource.project=test-app systemProp.sonar.upsource.token=siosio systemProp.sonar.analysis.mode=issues
sonar.upsource.tokenには、UpsourceプロジェクトのintegrationタブのAuthentication token(下の画像の赤枠の部分)に設定した値を指定します。
デフォルトだとAuthentication tokenには何も設定されていないので適当な値を指定しましょう。
動かしてみた結果
こんな感じにSonarQubeさんに指摘されるようなのを作ってみました。
package siosio; import java.util.*; public class Hoge { private static final String HOGE = "HOGE"; public static void main(String[] args) { String hoge = null; } }
実行するとsonar.analysis.mode=issuesが非推奨だよと言われるけど、Upsourceへの連携は成功しています。
> Task :sonarqube The use of the issues mode (sonar.analysis.mode=issues) is deprecated. This mode will be dropped in the future.
Upsourceで確認すると、IntelliJさんのInspection結果と同じような感じに表示されます。
Upsource側ですべて確認できるのなかなか良さそう。