Как создать проект с шаблоном Maven
В этом руководстве мы покажем вам, как использоватьmvn archetype:generate для создания проекта из списка существующих шаблонов Maven. В Maven 3.1.1 есть более 1000 шаблонов, безумно, команда Maven должна отфильтровать несколько бесполезных шаблонов.
Обычно мы просто используем следующие два шаблона:
-
maven-archetype-webapp- Веб-проект Java (WAR) -
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] ------------------------------------------------------------------------
Он сгенерирует следующие папки и файлы проекта.

Рисунок: Сгенерированная структура проекта в 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