Maven 入門

 


🛠 初めてのMaven入門 

MavenはJavaの開発でよく使われるのですが、
「え?ビルドツール?依存関係?なんのこっちゃ?」となりがちなので、
順番に整理していきます。


🔍 Mavenってなに?

MavenはJavaやその他のプログラムを作るためのビルドツールです。
ビルドツールとは、プログラムを実行できる形にまとめるお手伝いをしてくれるツールのこと。

Mavenがやってくれることの代表は…

  • 💼 ビルドの自動化 → コンパイルやパッケージ化を自動でやってくれる

  • 📦 依存関係の管理 → 必要なライブラリを自動でダウンロードしてくれる


📦 依存関係の管理って何?

例えば、あなたのプロジェクトでJUnitというテスト用ライブラリを使いたいとします。
普通なら、自分でネットからダウンロードして設定しなきゃいけませんが…

💡 Mavenなら「JUnitが欲しい」と宣言するだけで
インターネットから自動で取ってきてくれます。しかも、

  • 直接必要なライブラリ(JUnitなど)

  • それがさらに必要とするライブラリ(推移的依存関係)

もまとめて取ってきます。

さらに、一度取ってきたものはローカルのキャッシュに保存するので、
次からはインターネットなしでも使えます。


🧩 プラグインってなに?

Mavenは、ほぼすべての機能がプラグインで動いています。

  • プラグインを追加すると、新しい機能やコマンド(ゴール)が増える

  • これも依存関係の一種なので、最初はダウンロードが必要

例:

  • コンパイルするプラグイン

  • テストを実行するプラグイン

  • ドキュメントを作るプラグイン など


📂 ディレクトリ構造(慣例)

Mavenには「コンフィギュレーションよりコンベンション(規約重視)」という考え方があります。
つまり、細かい設定を書かなくても、みんな同じ規約で作れば動くということ。

代表的なのはこれ👇

  • メインのJavaソースコード → src/main/java

  • テスト用のコード → src/test/java

もちろん設定で変更もできますが、
できるだけデフォルトに従ったほうがシンプルです。


📝 POM(pom.xml)ってなに?

MavenプロジェクトはPOM(Project Object Model)という設定ファイルで管理します。
これはXML形式で書かれ、通常はpom.xmlという名前です。

POMに書けること:

  • プロジェクト名や説明

  • バージョン、作成日

  • 依存関係(どのライブラリを使うか)

  • Javaのバージョン

  • 成果物(出力ファイル)の名前

  • 継承する設定(Super POM)

💡 Super POMは、Mavenが持っている共通のデフォルト設定です。
あなたのPOMはこれを継承して、必要な部分だけ上書きします。


🖥 コマンドラインから始めよう

MavenはEclipseなどのGUIでも使えますが、
まずはコマンドライン(ターミナル、シェル、CMD)で学ぶのがおすすめ。

理由:

  • 実際に何が起きているか見える

  • トラブルシューティングがやりやすい

  • ネットのヘルプ記事もコマンド例が多い


📚 ベストプラクティス

シニアエンジニアも推奨するやり方:

  • バージョン管理を使う(Gitがおすすめ)

  • コードはGitHubなどのリポジトリで共有

  • エディタはNotepad++(Windows)やTextMate(Mac)などシンプルなものでOK


💡 まとめ

Mavenのキーワードを一気に整理すると…

  • 🛠 ビルドツール:コンパイルやパッケージを自動化

  • 📦 依存関係管理:必要なライブラリを自動取得

  • 🧩 プラグイン:Mavenの機能を追加する部品

  • 📂 規約重視src/main/javaなどの構造がデフォルト

  • 📝 POM:プロジェクト設定ファイル(pom.xml)

  • 🖥 CLI推奨:まずはコマンドラインから学ぶ



次の記事:Maven 環境準備