Mavenテンプレートを使ってプロジェクトを作成する方法

Mavenテンプレートを使用してプロジェクトを作成する方法

このチュートリアルでは、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 List out the Maven templates :

$ 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 Choose number “314” for ml.rugal.archetype:springmvc-spring-hibernate templete, and fill in the detail :

Note
この数値314は、ご使用の環境によって異なる場合があります。 上記のステップ1にリストされている手法で正しい番号を見つけてください。

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.example.web
Define value for property 'artifactId': : myweb
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  com.example.web: :
Confirm properties configuration:
groupId: com.example.web
artifactId: myweb
version: 1.0-SNAPSHOT
package: com.example.web
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: springmvc-spring-hibernate:0.3
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example.web
[INFO] Parameter: artifactId, Value: myweb
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example.web
[INFO] Parameter: packageInPathFormat, Value: com/example/web
[INFO] Parameter: package, Value: com.example.web
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.example.web
[INFO] Parameter: artifactId, Value: myweb
[INFO] project created from Archetype in dir: /Users/example/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

図:EclipseIDEで生成されたプロジェクト構造。

Note
プロジェクトをEclipseにインポートするには、mvn eclipse:eclipseと入力し、通常のプロジェクトとしてインポートします。

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

$ mvn eclipse:eclipse

3. より多くの例

使用するarchetypeArtifactIdがわかっている場合は、次のようなインタラクティブモードでコマンドをスキップしてください。

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

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

この例を確認してください–How to create a Java project with Maven

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

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

この例を確認してください–How to create a Java web application project with Maven