Jenkins + SonarQube で PHPコードメトリクス計測!
前回
Jenkins とは別のサーバ上に
SonarQube をインストールし
アクセスできるまでをまとめました。

今回は Jenkins からソースを解析し
SonarQube でのメトリクス情報を表示までの実行方法をまとめます。
言語は どれでも良いですが、 今回は PHP とします。
Overview
以下概要になります。

SonarQube 側事前準備
プロジェクトを作成しプロジェクトキーを発行します。
1. ログインページへアクセス
http://

デフォルトでは以下 admin:admin アカウントでログイン
Item | Value |
---|---|
ID | admin |
PW | admin |
2. プロジェクト作成
- ヘッダーメニュー Administration クリックし Administration ページへ遷移
- Projects > Management クリック

- Create ボタンクリック

- Name, Key 入力し

- プロジェクトが追加されたことがわかります。

3. PHP Plugin インストール
- Administration ページ System > Update Center クリック

- Available 選択 → 検索窓で「PHP」と入力 → 表示された PHP Plugin で Install クリック

- Restart で SonarQube に PHP Plugin インストール

- Installed タブで PHP Plugin がインストールされていることを確認

4. authentication token 発行
- Security > User クリック

- TOKENS クリックしポップアップ表示


- 任意の文字列を入力し create

- token コピー
Jenkins 側の設定時に利用します。

以上で SonarQube 側の事前準備は終了です。
Jenkins 側準備
1. SonarQube Plugin インストール
Jenkins の管理 > Plugin の管理
にて SonarQube Plugin インストール

2. SonarQube Scanner インストール
以下オフィシャルダウンロードページからリンク取得
Analyzing+with+SonarQube+Scanner
1 | $ cd /var/lib/jenkins |
3. Jenkins システム設定
Jenkins の管理 > システムの設定 へアクセス
JenkinsQube servers に必要項目入力

- SonarQube Scanner に先ほどインストールした sonar-scanner パスを設定

上記入力後保存
4. ジョブ新規作成
「sonarqubeTest」という名前のジョブを新規作成します。
- git リポジトリより PHP プロジェクト取得設定

- SonarScanner 実行設定

以上で Jenkins 側の設定完了です。
SonarQube 反映確認

ちなみにこちら EC-CUBE 1.1 のプロジェクトでした。
EC-CUBE のコード重複率が多く
無駄が如何に多いかがわかります。
以上です。
Jenkins + SonarQube で PHPコードメトリクス計測!
https://kenzo0107.github.io/2016/05/20/2016-05-21-jenkins-sonarqube-php-code-metrics/