English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Maven использует archetype (архетип) для создания пользовательской структуры проекта, формируя шаблон проекта Maven.
В предыдущих главах мы узнали, как Maven создает java проект с помощью следующей команды:
mvn archetype:generate
Архетип или прототип - это плагин 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).
Выберите 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 создаст проект с стандартной структурой директорий, как показано ниже:
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>
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!" ); {} {}
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 для создания любого типа проектов и запустить ваше разработку.