Mavenを使った開発
Mavenを使った開発を俯瞰すると図のようになります。
① プロジェクトテンプレート(Artchetype:アーキタイプ)を使ってMavenプロジェクトの雛型を作成します。Mavenにはビルド成果物(Artifact:アーティファクト)の種類に応じて、さまざまなアーキタイプがあらかじめ用意されています。また自分でアーキタイプを作成することもできます。
アーキタイプを使ってテンプレートの雛型を作成するにはarchtypeプラグインのcreateゴールを使います。
mvn archetype:create \
-DgroupId=com.mycompany.app \
-DartifactId=my-webapp \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-webapp
上記の実行サンプルでは、maven-archetype-webappというWEBアプリケーション用のアーキタイプを使って、my-webappというプロジェクトを作成しています。
アーキタイプもMavenプロジェクトのアーティファクトとして管理されています。アーティファクトは固有のグループIDと、アーティファクトIDを持っています。
② Eclipseなどの好みの統合開発環境にプロジェクトをインポートして開発を行います。
たとえばeclipseプラグインのeclipseゴールを使って、MavenプロジェクトをEclipseにインポートすることができます。
mvn eclipse:eclipse
このプラグイン・ゴールを実行すると、Eclipseにインポートするのに必要な以下のファイルが出力されます。
- .classpath
- .project
- .wtpmodules
③ ビルドに必要なライブラリを、開発環境上のローカルリポジトリ(Repository)から参照します。リポジトリはMavenがビルドする際にCLASSPATHに参照するライブラリを置いておく場所です。
リポジトリに置かれているライブラリ(プラグインも置かれます)は、Mavenアーティファクトとして管理されています。したがってそれぞれグループID、アーティファクトIDを持っています。
④ ローカルリポジトリに参照するライブラリがない場合、インターネット上のIbiblioサイトに置かれたリモートリポジトリから、ローカルリポジトリへ自動的にダウンロードします。ここはMavenのデフォルトリポジトリとして利用されていて、Jakartaなどのオープンソースの有名なライブラリはほとんどここからダウンロードすることができます。
⑤ プロジェクトや組織ごとに、自分たちのリモートリポジトリを立てることもできます。たとえばチーム内で作られた共通ライブラリなどをここに置いておきます。(Deploy:デプロイ)
⑥ JDKや商用のライブラリなど、パブリックな場所での公開ができないライブラリは、あらかじめ各開発者でローカルリポジトリにコピーしておく必要があります。
リポジトリの構造を理解しているならば、手動でコピーすることもできますが、installプラグインのinstall-fileゴールを使ってコピーすることもできます。
mvn install:install-file -Dfile=<path-to-file> \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<packaging>
上記の実行サンプルでは、ライブラリ<path-to-file>を、グループID<group-id>、アーティファクトID<artifact-id>、バージョン<version>、パッケージングタイプ<packaging>で、ローカル・リポジトリにコピーしています。
⑦ 開発成果物を構成管理します。
構成管理は、それぞれ利用しているツールを使って、チェックイン・チェックアウトを行います。