Как создать проект с шаблоном Maven

Как создать проект с шаблоном Maven

В этом руководстве мы покажем вам, как использоватьmvn archetype:generate для создания проекта из списка существующих шаблонов Maven. В Maven 3.1.1 есть более 1000 шаблонов, безумно, команда Maven должна отфильтровать несколько бесполезных шаблонов.

Обычно мы просто используем следующие два шаблона:

  1. maven-archetype-webapp - Веб-проект Java (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:

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

Рисунок: Сгенерированная структура проекта в Eclipse IDE.

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)

$ 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