English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Шаблон проекта Maven

Maven использует archetype (архетип) для создания пользовательской структуры проекта, формируя шаблон проекта Maven.

В предыдущих главах мы узнали, как Maven создает java проект с помощью следующей команды:

mvn archetype:generate

Что такое archetype?

Архетип или прототип - это плагин Maven, точнее шаблон проекта, который создает структуру проекта на основе шаблона. Мы будем использовать плагин archetype quickstart для создания простого java приложения.

Использование шаблона проекта

Откроем командную строку, перейдем в директорию C:\> MVN и выполним следующую команду mvn:

C:\MVN> mvn archetype:generate

Maven начнет обработку и запросит выбор необходимого архетипа:

[INFO] Сканирование проектов...
[INFO] Поиск плагина в репозитории с префиксом: 'archetype'.
[INFO] -------------------------------------------------------------------
[INFO] Создание проекта по умолчанию Maven
[INFO] segment-task: [archetype:generate] (aggregator-style)
[INFO] -------------------------------------------------------------------
[INFO] Подготовка архетипа: generate
...
600: remote -> org.trailsframework:trails-archetype (-)
601: remote -> org.trailsframework:trails-secure-archetype (-)
602: remote -> org.tynamo:tynamo-archetype (-)
603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-)
604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype 
Базовая настройка проекта, который комбинирует Scala и Wicket,
в зависимости от проекта Wicket-Scala. 
Включает примерSpecs тест.)
605: remote -> org.wikbook:wikbook.archetype (-)
606: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-glassfish (-)
607: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring (-)
608: remote -> org.xwiki.commons:xwiki-commons-component-archetype 
(Сделайте создание Maven проекта для создания компонентов XWiki легким.)
609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro 
(Сделайте создание Maven проекта для создания макросов отрисовки XWiki легким.)
610: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype)
611: удалённо -> org.zkoss:zk-archetype-webapp (The ZK wepapp archetype)
612: удалённо -> ru.circumflex:circumflex-archetype (-)
613: удалённо -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-)
614: удалённо -> sk.seges.sesam:sesam-annotation-archetype (-)
Выберите номер или примените фильтр 
(формат: [groupId:]artifactId, чувствителен к регистру, содержит): 203:

Нажмите Ввести Выберите параметр по умолчанию (203:maven-archetype-quickstart).

Maven спросит версию прототипа

Выберите org.apache.maven.archetypes:maven-archetype-quickstart версия:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Выберите номер: 6:

Нажмите Ввести Выберите параметр по умолчанию (6:maven-archetype-quickstart:1.1)

Maven спросит детали проекта. Введите детали проекта по запросу. Если хотите использовать значения по умолчанию, просто нажмите клавишу Enter. Вы также можете ввести свои значения.

Определите значение свойства 'groupId': : com.companyname.insurance
Определите значение свойства 'artifactId': : health
Определите значение свойства 'version': 1.0-SNAPSHOT
Определите значение свойства 'package': com.companyname.insurance

Maven запросит подтверждение деталей проекта, нажмите Ввести или нажмите Y

Подтвердите конфигурацию свойств:
groupId: com.companyname.insurance
artifactId: health
version: 1.0-SNAPSHOT
package: com.companyname.insurance
Y:

Теперь Maven начнет создавать структуру проекта, как показано ниже:

[INFO] -----------------------------------------------------------------------
[INFO] Используемые параметры для создания проекта 
От Старого (1.x) Архетипа: maven-archetype-quickstart:1.1
[INFO] -----------------------------------------------------------------------
[INFO] Параметр: groupId, Значение: com.companyname.insurance
[INFO] Параметр: packageName, Значение: com.companyname.insurance
[INFO] Параметр: package, Значение: com.companyname.insurance
[INFO] Параметр: artifactId, Значение: health
[INFO] Параметр: basedir, Значение: C:\MVN
[INFO] Параметр: версия, Значение: 1.0-SNAPSHOT
[INFO] Проект создан из Старого (1.x) Архетипа в директории: C:\MVN\health
[INFO] -----------------------------------------------------------------------
[INFO] УСПЕШНО СБОРКА
[INFO] -----------------------------------------------------------------------
[INFO] Общее время: 4 минуты 12 секунд
[INFO] Завершено в: Пт 13 Июл 11:10:12 IST 2012
[INFO] Финальная память: 20M/90M
[INFO] -----------------------------------------------------------------------

Созданный проект

Теперь перейдем в директорию C:\ > MVN. Вы увидите java приложение проект health, как это было создано при создании artifactId. Maven создаст проект с стандартной структурой директорий, как показано ниже:

Создание файла pom.xml

Maven автоматически создает файл pom.xml для проекта, как показано ниже:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.companyname.insurance</groupId>
  <artifactId>health</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>health</name>
  <url>http://maven.apache.org</url>
  <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
     <dependency>
     <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
     </dependency>
  </dependencies>
</project>

App.java

Maven автоматически создаст тестовый файл java App.java.

Путь:C:\MVN\consumerBanking\src\main\java\com\companyname\bank

package com.companyname.insurance;
 
/**
* Hello world!
*
*/
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    {}
{}

AppTest.java

Maven автоматически сгенерирует java-файл AppTest.java.

Путь: C:\MVN\consumerBanking\src\test\java\com\companyname\bank

package com.companyname.insurance;
 
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
 
/**
* Unit test for simple App.
*/
public class AppTest 
   extends TestCase
{
   /**
   * Create the test case
   *
   * @param testName name of the test case
   */
  public AppTest( String testName )
  {
      super( testName );
  {}
 
  /**
  * @return suite of tests being tested
  */
  public static Test suite()
  {
      return new TestSuite( AppTest.class );
  {}
 
  /**
  * Тщательный тест (Rigourous Test :-)
  */
  public void testApp()
  {
      assertTrue( true );
  {}
{}

Вот и все. Теперь вы можете увидеть мощь Maven. Вы можете использовать простые команды Maven для создания любого типа проектов и запустить ваше разработку.