2016年8月19日金曜日

SonarQube のセットアップ手順

概要

ソースコードを解析、その解析結果を蓄積、参照できるツール、SonarQube の最低限のセットアップ手順。

SonarQubeとは

ソースコードの様々な品質を解析し、その結果を蓄積、参照できるようにするWebアプリケーション。
イメージは、以下ページの「Integration」部分の図が分かりやすいように思う:

手順

Java JRE のインストール

インストーラのダウンロードURL
対応するOSのDownload部分のリンクをクリックし、インストール。

DBセットアップ(省略も可能)

PostgreSQL を使って試したので、とりあえずPostgreSQLの手順:
  1. インストーラのダウンロードURL(Download the installerリンクで)

  1. インストール後、以下の通りにDB作成(DBは別の名前でも可)
cd C:\Program Files\PostgreSQL\9.5\bin
createdb -U <DBユーザ名> sonar
※<DBユーザ名>部分は、インストール時に設定したユーザ名で読み替え

なお、その他対応しているDBは以下ページ参照:

SonarQube のセットアップ

ダウンロード/解凍

ダウンロードURL:
上側のSonarQubeの下にあるリンクをクリック
ダウンロード後、zipファイルを任意の場所に解凍(c:\sonarqubeとか)
以後、中身を解凍した場所を<SonarQubeフォルダ>と呼ぶ。

DBの設定

以下ファイルをエディタ開く
<SonarQubeフォルダ>/conf/sonar.properties
開いたファイルに、以下を追記
sonar.jdbc.username=<DBユーザ名>
sonar.jdbc.password=<DBパスワード>
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
※<DBユーザ名>、<DBパスワード>は、データベースにログインできるユーザ名、パスワードに読み替え
※DB名を変更している場合には、上記赤字部分を、変更したDB名に修正

起動方法

「<SonarQubeフォルダ>/bin/」フォルダ配下に、OS毎のフォルダがあるので、該当するフォルダを開き、
  • Windows の場合: StartSonar.bat を実行
  • その他の場:sonar.sh を実行
で、起動するはず。

接続確認

以下のURLにアクセスすると、SonarQube のページが開くはず
以下のような雰囲気)
 

Soner Scanner のセットアップ

実際にソースコードの解析を行うまでの手順。

ダウンロード、解凍

ダウンロードURL:
ダウンロードしたzipファイルを、任意の場所に解凍。
解答した場所を<Soner Scannerフォルダ>と呼ぶ。

Soner Scanner 動作確認

  1. サンプルプロジェクトをダウンロード、解凍
ダウンロードしたzipファイルを、任意の場所に解凍。
解答した場所を<サンプルプロジェクト解凍場所>と呼ぶ。

  1. 解析の実行
コマンドプロンプトを開き、以下の通りに実行:
cd <サンプルプロジェクト解凍場所>\projects\languages\javascript\javascript-sonar-runner
<Sonner Scanner>フォルダ>\bin\sonar-scanner.bat

  1. 解析結果の確認
にアクセスすると、プロジェクトの一覧に、解析した結果が増えているはず。

解析結果表示例)
ここから、プロジェクト名をクリックで、全体の状況を確認したり、
Codeタブで解析したコードの中身を参照したり、
ダッシュボードを見たりと、
かなり多角的に品質を確認できることが分かる。

参考リソース

最小限のインストール、動作確認手順:

以上。

7 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. このローカルホストに同一ネットワークの別の端末からアクセスする方法はありますか?

    返信削除
  3. "localhost"部分を、SonarQubeをインストールしたマシンのIPとかに変更すれば、別端末からアクセスできると思います。

    http://192.168.179.1:9000

    の、ような雰囲気。

    返信削除
  4. お返事ありがとうございます。
    試してみましたが上手くいきません。
    何か特別な設定や環境が必要でしょうか?

    返信削除
  5. うーん。
    ぱっと可能性として思いつくのは、以下です。

    1. Javaに対して、ファイアウォールを介した通信の許可が割り当たっていない
    2. 1.の許可があるが、TCPの通信ができる許可がない

    あとは、
    ・SonarQube 側の設定で、9000以外のポートを使うようになっている

    ぐらいでしょうか。

    1, 2. は、Windows環境下であれば、コントロールパネルから「Windows ファイアウォール」の設定で、確認できるはずです。
    許可されたアプリにPCにインストールしたJava.exeが入っていて、
    そのアプリに対する受信規則の設定で、TCPのローカルポートの9000が許可されている状態であれば、動くはず。。

    3. は、\conf\sonar.properties ファイル内の「sonar.web.port」の設定値で確認できます。
    ここの値が9000以外の数値になっている場合は、適宜、その数値に読み替える必要があります。

    返信削除
    返信
    1. IP間違って入力してただけでした、、
      正しく入力したら無事にできました、ありがとうございます。

      削除
    2. 接続できたようで、何よりでした^^

      削除