🏗️ Mavenアーキタイプ
新しいJavaプロジェクトを始めるとき、「ディレクトリ構造はどうしよう?」「pom.xml
はどう書けばいい?」と悩んだことはありませんか?そんな時に役立つのが、Mavenの強力な機能「アーキタイプ(Archetype)」です。
アーキタイプは、プロジェクトのひな形を自動で生成してくれるテンプレートのようなものです。これを使えば、面倒な初期設定をスキップして、すぐに開発を始められます。今回は、このアーキタイプをコマンドラインで使う方法を詳しく見ていきましょう。
💡 アーキタイプとは?
「アーキタイプ」は、Mavenの公式プラグインの一つです。コマンド一つで、Mavenの標準的なディレクトリ構造(src/main/java
, src/test/java
など)や、基本的なpom.xml
、さらにはサンプルのJavaコードまで、すべてをまとめて生成してくれます。
🚀 ステップ1: コマンドラインでひな形を生成する
まずは、最も基本的なコマンドから始めます。
ターミナルを開く 新しいプロジェクトを作成したいディレクトリに移動します。
archetype:generate
コマンドを実行mvn archetype:generate
このコマンドを実行すると、Mavenは利用可能なすべてのアーキタイプのリストを表示します。
アーキタイプを選択する 表示されたリストから、使いたいアーキタイプの番号を入力します。
今回は、最も一般的な「
maven-archetype-quickstart
」を選択するのがおすすめです。デフォルトの選択肢(通常は番号
44
)がこれに該当することが多いので、そのままEnter
キーを押すだけでもOKです。
プロパティを設定する 次に、Mavenはプロジェクトの基本情報を尋ねてきます。
groupId
:clinic.programming.training
artifactId
:quickstart-example
version
:1.0-SNAPSHOT
(デフォルトでOK)package
:clinic.programming.training
(デフォルトでOK)
これらの値は、後で
pom.xml
で変更することも可能です。確認と完了 最後に、設定内容を確認するメッセージが表示されるので、
y
と入力してEnter
を押すと、プロジェクトが生成されます。
✨ ステップ2: 生成されたプロジェクトを調べる
quickstart-example
という新しいディレクトリが作成されているはずです。中身を見てみましょう。
pom.xml
:先ほど設定した
groupId
,artifactId
,version
が自動で記述されています。JUnitの依存関係も最初から追加されています。ただし、バージョンが古い場合があるので、最新版に更新することをおすすめします。
ディレクトリ構造:
src/main/java
とsrc/test/java
の両方が作成されています。その中には、設定したパッケージ名(例:
clinic/programming/training
)のフォルダ構造ができています。
サンプルコード:
src/main/java
には、「Hello World」と出力するシンプルなクラスが。src/test/java
には、そのクラスをテストするためのJUnitのサンプルコードが、最初から用意されています。
⚙️ ステップ3: 便利なショートカットとビルド
archetype:generate
コマンドは、たくさんの対話形式の質問をされますが、パラメータを渡すことで、これをスキップすることもできます。
ショートカットコマンド
mvn archetype:generate -DgroupId=clinic.programming.training -DartifactId=jumpstart-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
-D
オプションを使って、プロパティを直接指定できます。-DinteractiveMode=false
をつけると、対話形式の質問をすべてスキップし、自動でプロジェクトを生成します。
ビルドの実行 プロジェクトが生成されたら、以下のコマンドでビルドを実行してみましょう。
mvn clean install
このコマンドは、コンパイル、テスト、パッケージング、ローカルリポジトリへのインストールをすべて自動で行います。
🧹 後片付け
作成したプロジェクトが不要になったら、rm -rf
コマンドで簡単に削除できます。
rm -rf quickstart-example
アーキタイプは、プロジェクトの開始を加速してくれる便利なツールです。