Maven 入門 | Java アプリケーション開発 | DarchetypeArtifactId の指定

Maven ではさまざまなプログラムを作成できる。それぞれ、プロジェクトを作成する段階で手順が異なったり、pom.xml に記述する内容が異なったりする。Maven を使って開発するには、「自分が作ろうとしているプログラムをどのように作ればよいか」を知る必要がある。

特定のプロジェクトを作成する

まず基本中の基本として、Java によるアプリケーション、つまり通常のコンピュータで実行できる Java アプリケーションの開発から考えてみよう。

Maven でプロジェクトを作成するとき、mvn archetype:generate というコマンドを実行した。これはプロジェクト作成の最も基本になるものである。ただし、これを実行するとテンプレート一覧が長く表示される。ここから使用するテンプレートを選択するのだが、すでに 1,000 件以上の項目があるため、選択するのはかなり大変である。

実は、プロジェクトを作成するときに使用するテンプレートをあらかじめ指定しておくことができる。これには -DarchetypeArtifactId というオプションを使用する。

mvn archetype:generate -DarchetypeArtifactId=アーティファクトID

このように呼び出す。-DarchetypeArtifactId は、使用するテンプレートのアーティファクト ID を指定するものだ。たいていの場合、アーティファクト ID を指定すれば、それだけでどのテンプレートかを特定できる。

ただし、場合によっては特定できないこともある。たまたま同じアーティファクト ID のテンプレートが複数あるような場合である。このようなときは、グループ ID を指定する -DarchetypeGroupId というオプションも用意されている。これを使って次のように実行すると確実である。

mvn archetype:generate -DarchetypeGroupId=グループID -DarchetypeArtifactId=アーティファクトID

基本は maven-archetype-quickstart

では、一般的な Java アプリケーションを開発するときは、どのように指定すればよいのか。基本は次のとおりである。

$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart

このように実行すると、次のように出力される。

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
Define value for property 'groupId': : 
Define value for property 'artifactId': : 
Define value for property 'version':  1.0-SNAPSHOT: : 
Define value for property 'package':  : : 
[WARNING] Archetype is not fully configured
Define value for property 'groupId': : ^Ckimkcui-MacBook-Pro:mvn kimkc$ 
kimkcui-MacBook-Pro:mvn kimkc$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
Define value for property 'groupId': : グループ ID を入力
Define value for property 'artifactId': : アーティファクト ID を入力
Define value for property 'version':  1.0-SNAPSHOT: : (default)
Define value for property 'package':  グループ ID : :  (default)

グループ ID、アーティファクト ID、バージョン、パッケージなどを順番に入力する。見てわかるように、これは前にプロジェクトを作成したときに入力したものと同じである。これらを入力すると、そのまま Java アプリケーションプロジェクトが作成される。