Mac OS X に SonarQube 導入 - UnityのC#コーディング規約チェック
[f:id:kenzo0107:20140620233131p:plain]
環境
- Mac OS X 10.9.3 (Marvericks)
- SonarQube 4.3.1
- SonarRunner 2.4
概要
- C#のコーディング規約チェック管理ツールを導入します。
導入手順
①SonarQube, SonarRunnerをダウンロード
以下SonarQube公式サイトより
SonarQube, SonarRunnerをダウンロードして下さい。
※フォルダはどこに配置しても構いません。
http://www.sonarqube.org/downloads/
※2014.06.20現在、SonarQube4.2, MySQL5.6 では起動しないことを確認しています。
Homebrewでのインストールはバージョンが古いアプリケーションをDLする可能性があり、
動作保証が取れない場合があります。
②MySQL MacOSにインストール
以下ブログが非常にわかりやすかったです。
http://blog.hyec.jp/2014/02/mac-os-x-mavericksmysql.html
念の為、懸念箇所はここ!
1 | ... |
上記で入力したパスワードを元にパスワードファイルが作成されます。
※ちなみに「seaside99」(九十九里浜)と入力しました。
ファイルを開くと「seaside99」でなく文字化け?という文字列が並んでいますが、
これがrootアカウントのパスワードです。
[f:id:kenzo0107:20140621002405p:plain]
MySQLインストールが完了できたでしょうか?
以下実行し、MySQLを起動しましょう。
1 | sudo /usr/local/mysql/support-files/mysql.server start |
③SonarQube用のDatabase作成
- 以下実行し、MySQLにログイン
1 | /usr/local/mysql/bin/mysql -u root -p(MYSQL_PASSWORD記載のパスワード) |
- 「sonar」データベース作成
以下実行でデータベース「sonar」作成
- 「sonar」データベース作成
1 | CREATE DATABASE sonar; |
以下実行し、Databaseに「sonar」が追加されていることを確認する。
1 | SHOW databases; |
実行結果
1 | mysql> SHOW databases; |
- 「sonar」ユーザを作成し、全権限を委譲
・ID:sonar PW:sonar のユーザ作成
- 「sonar」ユーザを作成し、全権限を委譲
1 | CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'sonar'; |
・sonarユーザに全権限付与
1 | GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'; |
・権限反映
1 | FLUSH PRIVILEGES; |
・設定完了したので終わり
1 | mysql> exit; |
④sonar.properties編集
1 | vim (SonarQubeのパス)/conf/sonar.properties |
※「4.2」ディレクトリはバージョンなのでバージョンアップ時は変更してください。
以下Sonarが参照するMySQLのDB設定の為、「sonar.jdbc.url」のコメントアウトを外して有効化してください。
1 | # Comment the embedded database and uncomment the following line to use MySQL |
⑤sonar-runner.properties編集
1 | vi (Sonar-Runnerのパス)/conf/sonar-runner.properties |
以下SonarRunnerが参照するDB設定、アカウント情報についてコメントアウトを外し有効化してください。
1 | #Configure here general information about the environment, such as SonarQube DB details for example |
上記設定完了後、
SonarQubeを起動します。
1 | $ (SonarQubeパス)/bin/macosx-universal-64/sonar.sh console |
以上で MySQL, SonarQube が起動している状態になりました。
⑥SonarQubeでのプラグイン設定
- 以下URLにアクセス
[http://localhost:9000]
- 以下URLにアクセス
以下のようなページが表示されます。
右上のLoginリンク押下します。
- Loginします
Login : admin
Password : admin
- Loginします
- 規約チェックするプラグインを設定する
Settingリンク押下します。
- 規約チェックするプラグインを設定する
設定ページが表示されます。
Pluginをインストールします。
・C#
・ReSharper
・StyleCop
・Japanese Pack
各リンクを押下し、installボタン押下
上記全Pluginをインストールすると以下のように表示されます。
この状態では、まだインストールが完了していません。
一度、SonarQubeを再起動させる必要があります。
「sonar.sh console」を実行したターミナルで
一度Ctr+CでSonarQubeをストップさせると以下結果が出力されます。
1 | wrapper | INT trapped. Shutting down. |
再度「sonar.sh console」を実行させ
SonarQubeにアクセス
アップデートセンター>Installed Plugins
先ほどのPluginがインストール済みであることが確認できます。
※日本語化されてます。
[f:id:kenzo0107:20140622015442p:plain]
⑦コーディング規約チェックをしたいプロジェクト決定
例として、以下にUnityプロジェクトを配置しているとします。
~/Desktop/UnityProject/
同階層に「sonar-project.properties」作成します。
1 | $ vim sonar-project.properties |
内容は以下を入力してください。
※sonar.sources=(Unityのcsファイル格納パスを指定してください)
1 | # Project identification |
⑧SonarRunner実行
例として、以下にSonarRunnerを配置しているとします。
~/Desktop/sonar-runner-dist-2.4/
sonar-project.properties作成した同階層で
sonar-runnerを実行
1 | ~/Desktop/sonar-runner-dist-2.4/bin/sonar-runner |
ターミナルに以下が表示されると成功
1 | INFO - 37/37 source files analyzed |
SonarQubeにアクセスするとProjects項目に
sonar-project.propertiesで指定した
sonar.projectNameリンクが表示されているので
リンク押下
コーディング規約のチェックが表示されます。
まずここまで出来たらあとは規約のカスタマイズになります。
本件は以上までとします。
カスタマイズはメニューの
品質プロファイル> Sonar Way
と進み、設定変更してみましょう。
補足
元々UnityのC#コーディング規約チェック実施する為に導入を試みましたが、
C#だけでなくJava, PHP, Python等かなり守備範囲が広いです。
他ブログではWindowsが多く、推奨環境としてはWindowsですが
MacOS Xで利用したい場合を本記事はまとめました。
Jenkins用Plugin [Sonar Plugin]も用意されており
定期チェックや他Jobと組み合わせてキックが可能です。