Java開発支援ツールの定番
Javaオープンソースセンターでは、Java開発に関連するさまざまなオープンソースを紹介していきます。また、開発者に便利なリンク集も今後充実させていく予定です。(編集局) |
クロノス
大伴 明弘/奥清隆
2005/4/7
|
Ant |
|
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 |
|
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 |
|
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 |
|
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 |
|
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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|