🛠 初めての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推奨:まずはコマンドラインから学ぶ
