Maven チュートリアル
Maven は「専門家」「達人」と訳され、Apache の下にある純 Java 開発のオープンソースプロジェクトです。プロジェクトオブジェクトモデル(略称:POM)の概念に基づき、Maven は単一の中央情報を利用して、プロジェクトのビルド、レポート、ドキュメントなどの手順を管理できます。
Maven はプロジェクト管理ツールであり、Java プロジェクトのビルドや依存関係の管理を行うことができます。
Maven は、C#、Ruby、Scala などの言語で書かれたプロジェクトなど、さまざまなプロジェクトの構築と管理にも使用できます。Maven はかつて Jakarta プロジェクトのサブプロジェクトでしたが、現在は Apache ソフトウェア財団が主催する独立した Apache プロジェクトです。
本チュートリアルを読む前に必要な知識
本チュートリアルは主に初心者を対象としており、Maven ツールの基本的な機能を学ぶのに役立ちます。本チュートリアルの学習を完了すると、Apache Maven の専門知識は中級レベルに達し、その後さらに高度な知識を学ぶことができます。
本チュートリアルを読むには、以下の基礎知識が必要です:Java の基礎。
Maven の機能
Maven は開発者が以下の作業を完了するのに役立ちます:
- ビルド
- ドキュメント生成
- レポート
- 依存関係
- SCMs
- リリース
- 配布
- メーリングリスト
Maven の特徴
規約は設定に勝る:標準化されたプロジェクト構造とビルドライフサイクルを提供します
依存関係管理:プロジェクトの依存関係を自動的に処理します
プラグイン体系:豊富なプラグインがさまざまなビルドタスクをサポートします
マルチモジュールサポート:大規模プロジェクトの管理を簡素化します
中央リポジトリ:グローバルに共有されたライブラリリソースにアクセスします
規約による構成
Maven は共通の標準ディレクトリ構造の使用を推奨しており、Maven は規約が設定に勝るという原則を使用しているため、皆さんは可能な限りこのようなディレクトリ構造に従うようにしてください。以下の通りです:
| ディレクトリ | 目的 |
|---|---|
| ${basedir} | pom.xml とすべてのサブディレクトリを格納します |
| ${basedir}/src/main/java | プロジェクトの Java ソースコード |
| ${basedir}/src/main/resources | プロジェクトのリソース(例:property ファイル、springmvc.xml) |
| ${basedir}/src/test/java | プロジェクトのテストクラス(例:JUnit コード) |
| ${basedir}/src/test/resources | テスト用のリソース |
| ${basedir}/src/main/webapp/WEB-INF | Web アプリケーションファイルのディレクトリ、Web プロジェクトの情報(例:web.xml、ローカル画像、JSP ビューページ) |
| ${basedir}/target | パッケージング出力ディレクトリ |
| ${basedir}/target/classes | コンパイル出力ディレクトリ |
| ${basedir}/target/test-classes | テストコンパイル出力ディレクトリ |
| Test.java | Maven はこの命名規則に一致するテストクラスのみを自動的に実行します |
| ~/.m2/repository | Maven のデフォルトのローカルリポジトリディレクトリの場所 |