Maven チュートリアル

Maven は「専門家」「達人」と訳され、Apache の下にある純 Java 開発のオープンソースプロジェクトです。プロジェクトオブジェクトモデル(略称:POM)の概念に基づき、Maven は単一の中央情報を利用して、プロジェクトのビルド、レポート、ドキュメントなどの手順を管理できます。

Maven はプロジェクト管理ツールであり、Java プロジェクトのビルドや依存関係の管理を行うことができます。

Maven は、C#、Ruby、Scala などの言語で書かれたプロジェクトなど、さまざまなプロジェクトの構築と管理にも使用できます。Maven はかつて Jakarta プロジェクトのサブプロジェクトでしたが、現在は Apache ソフトウェア財団が主催する独立した Apache プロジェクトです。


本チュートリアルを読む前に必要な知識

本チュートリアルは主に初心者を対象としており、Maven ツールの基本的な機能を学ぶのに役立ちます。本チュートリアルの学習を完了すると、Apache Maven の専門知識は中級レベルに達し、その後さらに高度な知識を学ぶことができます。

本チュートリアルを読むには、以下の基礎知識が必要です:Java の基礎。


Maven の機能

Maven は開発者が以下の作業を完了するのに役立ちます:

  • ビルド
  • ドキュメント生成
  • レポート
  • 依存関係
  • SCMs
  • リリース
  • 配布
  • メーリングリスト

Maven の特徴

  1. 規約は設定に勝る:標準化されたプロジェクト構造とビルドライフサイクルを提供します

  2. 依存関係管理:プロジェクトの依存関係を自動的に処理します

  3. プラグイン体系:豊富なプラグインがさまざまなビルドタスクをサポートします

  4. マルチモジュールサポート:大規模プロジェクトの管理を簡素化します

  5. 中央リポジトリ:グローバルに共有されたライブラリリソースにアクセスします


規約による構成

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 のデフォルトのローカルリポジトリディレクトリの場所
その他の拡張