Java開発支援ツールの定番

Javaオープンソースセンターでは、Java開発に関連するさまざまなオープンソースを紹介していきます。また、開発者に便利なリンク集も今後充実させていく予定です。(編集局)

クロノス
大伴 明弘/奥清隆
2005/4/7



 Ant

ライセンス形態 Apache Software License
ダウンロード http://www.apache.org/dist/ant/binaries/

 Antは、「The Apache Ant Project」(http://ant.apache.org/)で開発されているツールであり、主にJavaソースのコンパイルやデプロイといったビルド・ツールとして用いられている。元は、「The Apache Jakarta Project」内のサブプロジェクトの1つとして開発が行われていたが、2002年11月にApache Project直下に格上げされた。

 Antは、同じくビルドツールであるmakeとよく比較されるが、それ自体がJavaで作成されているためにマルチプラットフォームで動作する。また、ビルド手順をXMLファイル(build.xml)で記述するといった特徴がある。現在においては、Java開発において多くの現場で使われており、ビルドツールとしてのデファクトスタンダードの地位を占めている。

 しかし、Antは単なるビルドツールにとどまらない。Antは、「タスク」「オプショナルタスク」と呼ばれる多くのXMLタグを持ち、これらを使用することにより、例えば、単体テストツール「JUnit」の実行や、EJBコード自動生成ツール「XDoclet」の実行といった各種ツールとの連携が可能となる。Antはいまや、「ツールを実行するためのツール」ということもできよう。最新バージョンは1.6.2(2005年4月現在)である。

 Maven

ライセンス形態 Apache Software License
ダウンロード http://maven.apache.org/start/download.html

 Maven(http://maven.apache.org/)は、Javaベースのプロジェクト管理ツールである。元は、「The Apache Jakarta Project」のWebアプリケーションフレームワークTurbineプロジェクト内で開発されていたが、現在はApache Mavenプロジェクトとして格上げされている。

 システム開発のプロジェクトにおいては、ビルド、単体テストなどの各種ツールや、全体での情報共有手段などさまざまなものが必要となり、これらの環境構築や管理はなかなか大変なものであるが、Mavenはそのような問題を解決する。

 Mavenでは、「POM」と呼ばれるプロジェクト管理ファイルに情報を記述し、その情報を基に「ゴール」と呼ばれる各種処理を実行する。ゴールはプラグインという形で多数用意されており、プロジェクトフォルダ作成、ソースのコンパイル、ビルド、jarファイル作成、テストケースの実行、ソースコード制御システム(CVS等)との連携、ソースコードチェッカによる検査、さらには情報共有のためのプロジェクトサイトの作成といったものまで存在する。そのほかにも多数の機能があるが、これらを駆使することにより、プロジェクトをより効率的に管理、運営していくことが可能となる。最新バージョンは1.0.2(2005年4月現在)である。

 Cactus

ライセンス形態 Apache Software License
ダウンロード http://jakarta.apache.org/cactus/downloads.html

 Cactusは「The Apache Jakarta Project」(http://ant.apache.org/)によって開発されているテスティングフレームワークであり、サーバサイドJavaコンポーネントの単体テストを行うための基本機能を提供する。CactusはJUnitをベースに開発されており、単体テストの効率化と自動化を目的としている。

 サーブレットなどのサーバサイドJavaプログラムはコンテナ上で実行されるため、通常のJavaプログラムのようにmainメソッドやテストクラスから起動するといった方法では単体テストを実行することができない。そのためCactusはテスト用のコンテナを内部に持っており、コンテナの振る舞いを作り出すことによってサーバサイドJavaコンポーネントのテストを可能にする。また、サーブレットやフィルター、JSPなどを使用するコンポーネントのテストを行うためにJUnitのTestCaseクラスを拡張したクラスをCactusは提供している。テストを自動化するためにAntと連携することも可能であり、サーブレットやJSPの単体テストに威力を発揮するだろう。最新のバージョンは1.7(2005年4月現在)である。

 Log4j

ライセンス形態 Apache Software License
ダウンロード http://logging.apache.org/site/binindex.cgi

 Log4jは「The Apache Logging Services Project」(http://ant.apache.org/)で開発されているロギングツールである。Log4jはJava言語で開発されたプロダクトだが、「The Apache Logging Services Project」ではJava以外の言語にも移植したLog4net、Log4cxx(C++)、Log4phpなどのプロダクトも開発している。

 アプリケーションにおいてログ出力機能の管理は重要である。ログ出力のコードはアプリケーションのあらゆるソースに散在しているため、一元管理できていなければ、レイアウトの変更やデバッグ用ログ出力コードの削除といった作業は膨大な工数になってしまう。また、修正漏れの発生しやすい作業でもある。また、コードを修正した場合には、修正後にソースコードを再コンパイルする必要性が生じてしまう。

 Log4jはProperty形式かXML形式の設定ファイルを使用することで、ログの出力先、レイアウト、出力レベルなどを設定でき、再コンパイルなしでログ出力情報の変更をアプリケーションに反映することが可能である。また、ログ出力によりアプリケーションのパフォーマンスが低下することのないようにLog4jは設計されており、APIもシンプルなものになっている。最新のバージョンは1.2.9(2005年4月現在)である。

 XDoclet

ライセンス形態 BSD (Berkeley Software Distribution) License
ダウンロード http://sourceforge.net/project/
showfiles.php?group_id=31602

 XDoclet(http://xdoclet.sourceforge.net/)は、Antの拡張タスクとして提供されているコード自動生成ツールである。XDocletが特に便利になってくるのが、EJB開発のケースであろう。EJBでは、例えば1つのセッションBeanを作成しようとすると、各種ソースコードから配備記述子まで、5つ以上のファイルを作成、または修正しなければならないことが多いが、これらを手作業で行おうとするとかなり煩雑であり、追加、修正忘れといったミスを引き起こしやすい。

 XDocletはこういった問題を解決してくれる。XDocletでは、クラスやメソッドに関連するメタ情報をJavadocのようにコメント内に埋め込み、その情報を基に各種ソースコードなどが自動生成される仕組みとなっている。EJBではこれらの情報は各Bean本体に記述するが、 関連する情報を1カ所に集約するためにメンテナンス性の向上が図れ、また、EJBソースコード作成後の配備記述子の記述忘れをなくすことができるといった開発効率の向上が可能になる。

 そのほかにも、web.xmlやstruts-config.xmlなどの自動生成も可能であり、XDocletは、EJBに限らず開発効率の向上に役立つツールであるといえよう。最新のバージョンは1.2.2(2005年4月現在)である。



Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間