Eclipse内でのCheckstyleの使用
Checkstyleは、コマンドラインから使用したり、AntまたはMavenビルドスクリプト内で使用したりなど、さまざまな方法で使用できます。しかし、最も効率的なのはIDE内で使用する方法です。この方法だと、誤り部分を即時に訂正でき、手間もほとんどかかりません。Eclipse、IntelliJ、NetBeans、JBuilder、JEditなど、主要なほとんどのJava IDEには、Checkstyle用のプラグインが存在します。以降では、Eclipse内でCheckstyleを使用する方法について説明します。
Eclipse Checkstyleプラグインは、http://eclipse-cs.sourceforge.net/index.htmlにあります。まず、プラグインをインストールする必要があります。これには、プラグインのリモートアップデートサイトを使用するのが最も簡単です(図1を参照)。
プラグインをインストールしたら、特定のプロジェクトに対してCheckstyleチェックを起動できます(図2を参照)。プロジェクトプロパティウィンドウを開き([Project]→[Properties])、Checkstyleプロパティエントリを選択し、[Checkstyle active for this project]チェックボックスをオンにして、[OK]をクリックします。この時点で、Checkstyleはバックグラウンドタスクとして実行され、プロジェクト内のソースコードを監査します。プロジェクトの規模によっては、多少の時間がかかることがあります。
![図2 Checkstyleの起動:Checkstyleは、他の多くのIDEと同様、Eclipse IDE用のプラグインを備えている。 図2 Checkstyleの起動:Checkstyleは、他の多くのIDEと同様、Eclipse IDE用のプラグインを備えている。](http://cz-cdn.shoeisha.jp/static/images/article/385/15465.gif)
Checkstyleがその監査を終了すると、通常は、標準違反の長いリストが生成され、[Problems]ビューペインに警告としてリストされます。このリスト内の問題をクリックすると、原因のコードセグメントに自動的にジャンプします。
Checkstyleプラグインは、Javaコンパイラと同じように動作します。Checkstyleが有効なプロジェクト内でJavaクラスを編集および保存すると、コードが自動的にチェックされて、違反が強調表示され、その説明が表示されます(図3を参照)。原因のコードが黄色で強調表示され、その上、対応するマーカーが余白に表示されるため、これを見落とすことはないでしょう。
コーディング標準が適用されるプロジェクトでは、開発者は、Checkstyleが正しく設定されたIDEで作業する必要があります。適切に推奨すれば、開発者は、コーディング標準エラーを構文エラーとほとんど同じものと見なすようになり、コードを記述しながら訂正するようになります。やがて、すべてのチームメンバが、プロジェクト標準を徐々に(かつスムーズに)身につけていきます。これは、コーディング標準を実践する上で最も効率的な方法です。
一方、大規模な既存のコードベースでCheckstyleを実行すると、これまでコーディング標準が実践されていなかった場合や異なるコーディング標準が実践されていた場合は特に、大量のエラーが発生するため、混乱が生じる可能性があります。これは、組織にコーディング標準を導入する方法を検討するときの重要な要因です。
次の節では、チームの特定の要件に合わせてCheckstyleコーディング標準をカスタマイズする方法について説明します。
Eclipse内でのコーディング標準のカスタマイズ
構成ファイルを通じて最初から提供されるSunコーディング標準は、場合によっては手に余ることがあります。特に、Checkstyleを使用せずに既に多くのコードが記述されている場合、Checkstyleによって、比較的マイナーなルール違反(行の末尾の空白など)が何百個となく報告されてしまいます。この場合、マイナーであまり重要でない大量の標準の中に、重要な標準が埋もれてしまう恐れがあります。その結果、2つのマイナスの副作用が考えられます。
- 開発者はCheckstyleを使用したがらなくなり、すべてのルール違反を無視します。これは、Checkstyleをインストールする本来の目的を損ないます。
- 開発者は、末尾の空白を削除するといった作業に過度に集中し、数時間を費やします。非常に明快なコードは得られますが、一般に、開発者の生産性は大きく低下します。
コーディング標準の採用とCheckstyleによる実践を効果的に進めるためには、多くの場合、より柔軟な方法が必要です。これを実現する最も簡単な方法は、会社または単一のプロジェクト用に特別に設計されたコーディング標準のカスタムセットを作成することです。
Eclipseでは、これを比較的簡単に行うことができます(図4を参照)。[Preferences]ウィンドウにアクセスし、Checkstyleの各種設定を選択してみてください。いくつかの組み込みの構成ファイル(Sunコーディング標準と、Eclipseで使用される既定のコードフォーマットに適用される、多少変更されたバージョンのSun標準)が表示されます。
新しいCheckstyle構成ファイルを作成するには、[New]をクリックします。使用できる構成ファイルの種類は次のとおりです。
構成ファイルの種類 | 説明 |
[Built-in Configurations] | Checkstyleプラグインと共に配布されるSunコーディング標準などが代表例です。これを変更することはできません。 |
[Internal Configurations] | Eclipseメタデータに格納されます。新しい構成をローカルに試みるには便利ですが、他のチームメンバと(簡単には)共有できません。 |
[External Configurations] | 外部ソースからインポートされます。ローカルディスク上の外部ファイル([External Configuration])やWebサーバーから([Remote Configuration])インポートしたり、例えば構成管理の下でEclipseプロジェクトに格納したりできます([Project Relative Configuration])。 |
プロジェクト関連の構成([Project Relative Configuration])は、該当のCheckstyle構成ファイルが、AntやMavenなど、他のツールによるビルドプロセスでも使用されている場合に、特に効果的です。
新しいコーディング標準のセットを作成する場合は、内部構成([Internal Configurations])で開始して、その内容に自分とチームの他のメンバが納得したら、エクスポートして公開するのが最も簡単です。
プラグインを使ってCheckstyle構成ファイルを設定するのは簡単です。新しい構成をクリックするとウィンドウが表示され、そこに、使用可能なCheckstyleモジュールと、この構成ファイルで有効になっているモジュールが表示されます(図5を参照)。構成ファイルにモジュールを追加するには、目的のモジュールをクリックし、各自のニーズに合わせて構成します。各モジュールには、独自の構成パラメータが用意されています。
コーディング標準のイニシアティブについて、開発チームの賛同を得ることが重要です。このためには、チームで標準のリストを作成し、各標準を検討し、プロジェクトの要望と標準に基づいてモジュールを構成するのが適当です。こうすることで、開発者は各ルールの背後にある原動力を理解でき、その採用が促進されます。