連載
» 2010年10月08日 00時00分 公開

ユカイ、ツーカイ、カイハツ環境!(17):コード探知機「Sonar」でプロジェクトの深海を探れ! (4/4)

[岡本隆史,@IT]
前のページへ 1|2|3|4       

Sonarのプラグインを使うには?

 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>
……【略】……
pom.xmlへの追記項目

 また、プロジェクトのSettings画面で、Tracの設定ができます(※Settings画面を表示するには、adminでログインする必要があります)。

図13 Tracプラグインのセットアップ画面 図13 Tracプラグインのセットアップ画面

 後は、通常どおり、MavenのSonarpプラグインを利用するとTracのチケット情報が登録され、ダッシュボードに表示されるようになります。

図14 Tracプラグインのダッシュボード 図14 Tracプラグインのダッシュボード

 なお、tracpluginはXMLRPCを利用してtracと通信するため、TracへXML-RPCプラグインを導入しanonymousユーザーにXML_RPC権限を付与しておく必要があります。TracLightningをお使いの場合は、XML_RPCプラグインは導入済みなので、anonymousユーザーにXML_RPC権限を付与してください。

 また、ユーザー/パスワードを設定画面で設定できるようになっていますが、Basic認証にしか対応していないようです。Digest認証を利用している場合は、Basic認証に変更する必要があるので、注意してください(TracLightningはDigest認証を利用しています)。

 Sonarの多くのプラグインは、プラグインをインストールするとSettings画面でプラグインの設定ができます。プラグインをインストールしたら、取りあえずSettings画面を確認してみるといいでしょう。

デフォルトのDBをMySQLに変更するには?

 Sonarはデフォルトでは、データベースにApache Derbyを利用します。Apache Derbyを筆者が確認した限りでは特に不具合は見られませんでしたが、Sonarのページによると、プロジェクトで運営する場合は、MySQLなどのエンタープライズクラスのデータベースを利用することが推奨されています。

 ここでは、データベースをApache DerbyからMySQLへ変更してみましょう。MySQLを利用するには、以下の3つの手順が必要です。それぞれ見ていきましょう。

  1. データベースの設定
  2. Sonarの設定
  3. Mavenの設定

【1】データベースの設定

 設定を行うスクリプトがSonarをインストールしたディレクトリの下の「extras\database\mysql\create_database.sql」にありますので、管理者権限でmysqlスクリプトを実行します。

> mysql.exe -u root -p < create_database.sql

【2】Sonarの設定

 Sonarをインストールしたディレクトリの下のconf\sonar.propertiesファイルを編集し、Apache Derbyの設定をコメントアウトし、MySQLの設定のファイルを書き換えます。

……【略】……
#----- Embedded database
# Comment the following lines to deactivate the default embedded database (used only for tests and demos)
#sonar.jdbc.url:                            jdbc:derby://localhost:1527/sonar;create=true
#sonar.jdbc.driverClassName:                org.apache.derby.jdbc.ClientDriver
#sonar.jdbc.validationQuery:                values(1)
# directory containing Derby database files. By default it's the /data directory in the sonar installation.
#sonar.embeddedDatabase.dataDir:
# derby embedded database server listening port, defaults to 1527
#sonar.derby.drda.portNumber:               1527
 
#----- MySQL 5.x/6.x
# Comment the embedded database and uncomment the following lines to use MySQL
sonar.jdbc.url:jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver
sonar.jdbc.validationQuery:                select 1
……【略】……

sonar.propertiesの変更点


【3】Mavenの設定の変更

 最後に、Mavenでビルドを行うマシンでMavenの設定ファイルを編集します。Mavenの設定ファイルは、Mavenをインストールしたディレクトリの下のconf\settings.xmlにあります(ユーザーホームの下の.m2ディレクトリの下のファイルでも可能です)。

 設定は、「settings/profiles」タグ以下に下記のようにSonarのプロファイルを記述します。ビルドマシンの構成上、Sonarを起動したサーバとビルド用のサーバを分けたい場合は、sonar.host.urlをSonarを起動するサーバを指定します。

<settings>
<profiles>
……【略】……
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- データベースの設定 -->
<sonar.jdbc.url>
jdbc:mysql://dbserver:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>

<!-- Sonarのサーバをビルドマシンと別にする場合記述 -->
<sonar.host.url>http://sonarserver:9000</sonar.host.url>
</properties>
</profile>
……【略】……
</profiles>
</settings>

settings.xmlの編集内容


Sonarでメトリクスマスターになろう!

 MavenとMavenの各種のプラグインFindBugsやPMD、CheckStyle、CPD、Cobertura……を利用すれば、Sonarで取得できるメトリクスと同じ情報は取れます。しかしながら、個別にビルドファイルを設定する必要がありますし、メトリクスの閲覧も個別のプラグインの出力結果を確認する必要があり、全体を俯瞰(ふかん)するのは困難です。

 Sonarを利用すれば、簡単にメトリクスを取得でき、なおかつ、全体を俯瞰できます。また、プラグインアーキテクチャにより、機能を追加したり、足りないメトリクスも追加できます。

 Sonarの導入は非常に簡単です、Mavenのビルドファイルを変更する必要がなく、単にSonarサーバを用意してSonarプラグインを利用するだけで導入できます。すでに、何らかのメトリクス取得ツールや、コーディング規約違反検出ツールを導入しているプロジェクトは多いと思いますが、既存のプロジェクトへの影響も小さいので、Sonarを導入して取得するメトリクスの幅を広げてみてはいかがでしょうか。


「ユカイ、ツーカイ、カイハツ環境!」バックナンバー
前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。