このチュートリアルでは、 `mvn archetype:generate`を使って既存のMavenテンプレートのリストからプロジェクトを生成する方法を説明します。 Maven 3.1.1には1000個のテンプレートがあり、夢中です。Mavenチームはいくつかの無駄なテンプレートを除外すべきです。

通常、次の2つのテンプレートを使用します。


  1. maven-archetype-webapp

    – Java Webプロジェクト(WAR)


  2. maven-archetype-quickstart

    – Javaプロジェクト(JAR)

1. Maven 1000テンプレート

`mvn archetype:generate`と入力すると1000個のテンプレートが画面に表示され、あなたはそれを見たり選択したりすることができません。それを解決するには、テンプレートリストを次のようなテキストファイルに出力します:

$ mvn archetype:generate > templates.txt
//waiting few seconds, then exits
Press CTRL + C

$ vim templates.txt

2. Mavenのアーキタイプ:生成する

既存のSpring-HibernateテンプレートからWebプロジェクトを生成する方法を説明する手順:

2.1 Mavenテンプレートを列挙する:

$ mvn archetype:generate
[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) @ standalone-pom >>>[INFO][INFO]<<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom <<<[INFO][INFO]--- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---[INFO]Generating project in Interactive mode[INFO]No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)

Choose archetype:

311: remote -> jboss:mobicents-ra-archetype (An archetype for slee resource adaptor.)//...

314: remote -> ml.rugal.archetype:springmvc-spring-hibernate (A pretty useful JavaEE application archetype based on springmvc spring and hibernate)
//...
486: remote -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
487: remote -> org.apache.maven.archetypes:maven-archetype-marmalade-mojo (-)
488: remote -> org.apache.maven.archetypes:maven-archetype-mojo (An archetype which contains a sample a sample Maven plugin.)
489: remote -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
491: remote -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
492: remote -> org.apache.maven.archetypes:maven-archetype-profiles (-)
493: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)//...

2.2「ml.rugal.archetype:springmvc-spring-hibernate」テンプルテーションの番号「314」を選択し、詳細を記入してください:

Choose a number or apply filter (format:[groupId:]artifactId, case sensitive contains): 493: 314
Choose ml.rugal.archetype:springmvc-spring-hibernate version:
1: 0.1
2: 0.2
3: 0.3
Choose a number: 3: 3
Downloading: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.jar
Downloaded: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.jar (29 KB at 19.7 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.pom
Downloaded: http://repo.maven.apache.org/maven2/ml/rugal/archetype/springmvc-spring-hibernate/0.3/springmvc-spring-hibernate-0.3.pom (4 KB at 5.5 KB/sec)
Define value for property 'groupId': : com.mkyong.web
Define value for property 'artifactId': : myweb
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  com.mkyong.web: :
Confirm properties configuration:
groupId: com.mkyong.web
artifactId: myweb
version: 1.0-SNAPSHOT
package: com.mkyong.web
 Y: : y[INFO]----------------------------------------------------------------------------[INFO]Using following parameters for creating project from Archetype: springmvc-spring-hibernate:0.3[INFO]----------------------------------------------------------------------------[INFO]Parameter: groupId, Value: com.mkyong.web[INFO]Parameter: artifactId, Value: myweb[INFO]Parameter: version, Value: 1.0-SNAPSHOT[INFO]Parameter: package, Value: com.mkyong.web[INFO]Parameter: packageInPathFormat, Value: com/mkyong/web[INFO]Parameter: package, Value: com.mkyong.web[INFO]Parameter: version, Value: 1.0-SNAPSHOT[INFO]Parameter: groupId, Value: com.mkyong.web[INFO]Parameter: artifactId, Value: myweb[INFO]project created from Archetype in dir:/Users/mkyong/Documents/workspace/maven/template/myweb[INFO]------------------------------------------------------------------------[INFO]BUILD SUCCESS[INFO]------------------------------------------------------------------------[INFO]Total time: 35.210s[INFO]Finished at: Tue Oct 28 15:32:10 MYT 2014[INFO]Final Memory: 10M/29M[INFO]------------------------------------------------------------------------

以下のプロジェクトフォルダとファイルが生成されます。


maven-template、width = 467、height = 679


Figure:Eclipse IDEで生成されたプロジェクト構造.

  • Note ** プロジェクトをEclipseにインポートするには、 `mvn eclipse:eclipse`と打ち込んで、通常のプロジェクトとしてインポートします:

$ cd myweb
$ pwd/Users/mkyong/Documents/workspace/maven/template/myweb

$ mvn eclipse:eclipse

3.その他の例

使用する `archetypeArtifactId`が分かっている場合は、次のような対話モードでコマンドをスキップしてください:

  • 3.1 ** maven-archetype-quickstart(Javaプロジェクト)

$ mvn archetype:generate -DgroupId=com.mkyong.core -DartifactId=ProjectName
    -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  • 3.2 ** maven-archetype-webapp(Java Webプロジェクト)

$ mvn archetype:generate -DgroupId=com.mkyong.web -DartifactId=ProjectName
    -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false