連載
» 2005年09月02日 12時00分 公開

ビルド管理を楽にするオープンソースツール一覧明日からできるプロジェクト管理(3)(2/5 ページ)

[高野敦,@IT]

 まず「ビルド」そのものについて考えてみましょう。

ビルドとは

 ビルドとは、ソースコード、設定ファイル、画面ファイル(JSPやHTML)などの構成要素を組み合わせて、「実行可能ファイル」を作成することです。例えば、WebアプリケーションをJavaで作成する場合は、warファイルが実行可能ファイルとなります。さらに、この手順において、ビルドをする構成要素の組み合わせを記録することが重要です。

実行可能ファイルの構造

 実行可能ファイルを作成するためには、構成要素をどのような構造で格納すればよいのでしょうか。また、実行可能ファイルの構造や必要なライブラリとの関係(静的リンク、動的リンク、格納方法)を配慮し、構成要素をコンパイルしてから格納するのか、コピーすればよいのかパッケージングをどのようにすればよいのかなどを考える必要があります。例えば、Webアプリケーションとしてwarファイルを作成する例を考えてみましょう。

ALT 図1 Webアプリケーションの構造例

 この例におけるビルドの手順は、まずロジックを表すJavaファイルとDAO(Data Access Object)を表すJavaファイルをコンパイルしてlogic.jarとしてパッケージングしてWEB-INF/libに格納します。その後でStrutsを利用したWeb部分のActionクラスはWEB-INF/classesに格納し、StrutsのライブラリはWEB-INF/libに格納する。設定ファイルであるstruts-config.xmlはWEB-INFに格納します。これが、warファイルを作成するビルド方法になります。

 この手順に従ってビルドします。このビルドは手動で行ってもいいですが、石出さんの抱える悩みにもつながるので、「ビルドの自動化」で説明するツールを利用してビルドするとよいでしょう。

 このように実行可能ファイルの構造を定義、ビルドの手順を明確にすることがビルドを進めるための第一歩です。

構成管理ツールとの連携

 ビルドするに当たり、考えなければならないのがどのソースコード、設定ファイル(リビジョンを含めて)を構成要素とすればよいのかを決定することです。構成管理台帳を作成し、人の手で管理することもできますが手間や正確性を期すために構成管理ツールと連携を考えた方がよいでしょう。また、ビルドした場合にどの構成要素を利用したかを明確にするためにビルドした要素を1つのバージョンとします。CVSを利用するのであれば、これらの構成要素にビルドIDのタグを付けます。この関係を表したのが以下の図2です。

ALT 図2 構成管理ツールとの連携

 適切な構成要素の組み合わせ(図2のピンクの組み合わせ)を構成管理ツールからチェックアウトし、ビルドする。ビルドした構成要素の組み合わせ(図2のピンクの組み合わせ)に対して、構成管理ツール上でバージョン付けを行うという手順で連携をします。

ライブラリ管理

 石出さんが悩んでいたようにライブラリも管理の対象となるでしょう。よく行う管理方法はライブラリを構成管理対象として構成管理ツールを用いて管理する方法です。この方法は簡単ですが、複数のプロジェクトで同じライブラリを使っているときに、ライブラリの更新の作業やスペースに関して「ムダ」ができてしまう可能性があります。

 利用するライブラリに関しては複数のプロジェクトで1つのリポジトリに格納して、ビルドに利用する方法も考えられます。この方法ではライブラリをどう格納するかを決定する手間はありますが、命名規則などで複数のバージョンを同居させることでライブラリ更新の作業も簡単に行うことができます。

 この2つの方法に限りませんが、何らかの方法によってライブラリを管理する必要があります。後者の方法でライブラリを管理するツールとしてApache Mavenがあります。Mavenについては、後ほど説明します。

ビルドのタイミング

 ビルドはいつ行うのでしょうか。以下の記事ではビルドの種類について説明しています。参考にしてください。




 デイリービルド、ナイトリービルドといったプラクティスは開発において効果的であるといわれています。こういった定期なビルドは、人間が定期的にビルドしていては手間が掛かるためビルドツールによって行われます。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ