Home > プロジェクト管理

プロジェクト管理 Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

Mavenの初歩

こんにちは!チャンです。
私の前回の記事「はじめてのWARファイル」で、warファイルによる容易なデプロイについてお伝えしました。
その恩恵をもたらすプロジェクト管理ツール「Maven」について、ほんの一端ですが調査しました。今回は、バージョン2であるMaven2について解説します。


▽Maven2とは?

Apacheで開発されているソフトウェアプロジェクト管理ツールMaven のバージョン2です。 プロジェクトのビルド、テスト、ドキュメンテーション、成果物の配備など、プロジェクトのライフサイクル全体を、Project Object Model (POM) という考え方に基づいて管理します。

▽Maven2の機能

Maven2の機能をいくつか挙げると

  1. 統一したディレクトリ構成を提供し、プロジェクト全体が把握しやすくなる。
  2. WARやJARなど成果物の簡単な作成方法の提供
  3. プロジェクトに必要なライブラリの依存関係の自動解決の提供
今回は、3. についてスポットを当ててみます。

▽依存関係の自動解決

依存関係の自動解決とは、開発環境にMavenをインストールしておけば、プロジェクトが持つPOMファイル(pom.xml)という設定ファイルから必要なライブラリを依存関係も考慮して自動ダウンロードしてくれる機能です。

ダウンロードは、ライブラリ配布を目的とした「リモートリポジトリ」と呼ばれるWeb上のサイトから行います。Maven2の公式リポジトリは「セントラルリポジトリ」と呼ばれています。他には、Codehaus独自のリポジトリ等があります。

ダウンロードされたライブラリは、個人の環境である「ローカルリポジトリ」に保管されます。ローカルリポジトリへの手動追加も可能です。

▽POMファイル

POMファイルには、ソースコード管理・ビルド方法・依存ライブラリといったプロジェクトに関する情報が含まれています。依存ライブラリを定義する際は、セントラルリポジトリ内での保管場所を示すgroupId/artifactId/versionの記載が必要になります。記載情報は、Maven Repositoryというサイトで検索が可能です。

また、各依存ライブラリに対して細かい依存関係の指定が可能です。dependencyエレメント内に、<scope>タグで下記のような定義をする事で指定が可能です。

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.5</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>

なお、<scope>タグ内の種類は以下のとおり。

  • compile -> 全てのクラスパスで有効(デフォルト)
  • runtime -> 実行時およびテスト時に有効
  • test -> テストケースのコンパイルおよび実行時に有効
  • provided -> コンパイル時には必要だが、実行時にはコンテナから提供されるライブラリ
  • system -> ダウンロードはせず、明示的にライブラリの場所を指定
JUnitはテスト実行時のみ必要で、アプリケーションの稼働時には必要ないのでtestを定義しています。また、ServletAPIはJDKやコンテナが提供するのでprovidedを定義しています。


Maven2をもっと理解する為には、まだまだpom.xmlについて知る必要がありそうです。

次回は、秘かなマイブームGrailsについて、お届けしたいと思います。ではでは。

Home > プロジェクト管理

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。