Sonarは、EclipseやTracなどのほかのツールと同じようにプラグインにより、Java以外の言語に対応したり、取得できるメトリクスを増やせます。プラグインはjarファイルで提供されています。
ここでは、Tracのチケットの統計情報を表示するTrac Pluginを例にプラグインのインストールと利用方法を紹介します。
Sonarのプラグインは、「Sonar Plugin Library」でさまざまなものが提供されています。ここから、プラグインをダウンロード、インストールします。
Trac Pluginのサイトで取得できるので、このサイトより「tracplugin-x.x.x.jarファイル」(x.x.xはバージョン番号)をダウンロードし、Sonarをインストールしたディレクトリの「extensions\plugins」ディレクトリにプラグインファイルをコピーすれば、インストールは完了です。Sonarを再起動すると、プラグインは有効になります。
プラグインによって設定方法は異なりますが、tracpluginの場合、Mavenのビルドファイル(pom.xml)に課題管理システムを設定すると有効になります。課題管理システムを設定するには、pom.xmlのプロジェクトの設定(projectタグ)に次のように記述します。
……【略】……
<issueManagement>
<system>trac</system>
<url>http://localhost/trac/SampleProject</url>
</issueManagement>
……【略】……
また、プロジェクトのSettings画面で、Tracの設定ができます(※Settings画面を表示するには、adminでログインする必要があります)。
後は、通常どおり、MavenのSonarpプラグインを利用するとTracのチケット情報が登録され、ダッシュボードに表示されるようになります。
なお、tracpluginはXMLRPCを利用してtracと通信するため、TracへXML-RPCプラグインを導入しanonymousユーザーにXML_RPC権限を付与しておく必要があります。TracLightningをお使いの場合は、XML_RPCプラグインは導入済みなので、anonymousユーザーにXML_RPC権限を付与してください。
また、ユーザー/パスワードを設定画面で設定できるようになっていますが、Basic認証にしか対応していないようです。Digest認証を利用している場合は、Basic認証に変更する必要があるので、注意してください(TracLightningはDigest認証を利用しています)。
Sonarの多くのプラグインは、プラグインをインストールするとSettings画面でプラグインの設定ができます。プラグインをインストールしたら、取りあえずSettings画面を確認してみるといいでしょう。
Sonarはデフォルトでは、データベースにApache Derbyを利用します。Apache Derbyを筆者が確認した限りでは特に不具合は見られませんでしたが、Sonarのページによると、プロジェクトで運営する場合は、MySQLなどのエンタープライズクラスのデータベースを利用することが推奨されています。
ここでは、データベースをApache DerbyからMySQLへ変更してみましょう。MySQLを利用するには、以下の3つの手順が必要です。それぞれ見ていきましょう。
設定を行うスクリプトがSonarをインストールしたディレクトリの下の「extras\database\mysql\create_database.sql」にありますので、管理者権限でmysqlスクリプトを実行します。
> mysql.exe -u root -p < create_database.sql
Sonarをインストールしたディレクトリの下のconf\sonar.propertiesファイルを編集し、Apache Derbyの設定をコメントアウトし、MySQLの設定のファイルを書き換えます。
sonar.propertiesの変更点
最後に、Mavenでビルドを行うマシンでMavenの設定ファイルを編集します。Mavenの設定ファイルは、Mavenをインストールしたディレクトリの下のconf\settings.xmlにあります(ユーザーホームの下の.m2ディレクトリの下のファイルでも可能です)。
設定は、「settings/profiles」タグ以下に下記のようにSonarのプロファイルを記述します。ビルドマシンの構成上、Sonarを起動したサーバとビルド用のサーバを分けたい場合は、sonar.host.urlをSonarを起動するサーバを指定します。
settings.xmlの編集内容
MavenとMavenの各種のプラグインFindBugsやPMD、CheckStyle、CPD、Cobertura……を利用すれば、Sonarで取得できるメトリクスと同じ情報は取れます。しかしながら、個別にビルドファイルを設定する必要がありますし、メトリクスの閲覧も個別のプラグインの出力結果を確認する必要があり、全体を俯瞰(ふかん)するのは困難です。
Sonarを利用すれば、簡単にメトリクスを取得でき、なおかつ、全体を俯瞰できます。また、プラグインアーキテクチャにより、機能を追加したり、足りないメトリクスも追加できます。
Sonarの導入は非常に簡単です、Mavenのビルドファイルを変更する必要がなく、単にSonarサーバを用意してSonarプラグインを利用するだけで導入できます。すでに、何らかのメトリクス取得ツールや、コーディング規約違反検出ツールを導入しているプロジェクトは多いと思いますが、既存のプロジェクトへの影響も小さいので、Sonarを導入して取得するメトリクスの幅を広げてみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.