English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Maven uses archetype (prototype) to create a custom project structure, forming a Maven project template.
In the previous chapters, we learned that Maven uses the following command to quickly create a java project:
mvn archetype:generate
Archetype, also known as prototype, is a Maven plugin, to be precise, a project template, whose task is to create a project structure based on a template. We will use the quickstart archetype plugin to create a simple java application.
Let's open the command console, navigate to the C:\> MVN directory and execute the following mvn command:
C:\MVN> mvn archetype:generate
Maven will start processing and ask to select the required archetype:
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------------------------------------------------------------------- [INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------------------------------------------------------------------- [INFO] Preparing archetype: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 Configurazione di base per un progetto che combina Scala e Wicket, a seconda del progetto Wicket-Scala. Include un esempio di test 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 (Fai facile creare un progetto Maven per creare Componenti XWiki.) 609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro (Fai facile creare un progetto Maven per creare Macro di Rendering XWiki.) 610: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype) 611: remoto -> org.zkoss:zk-archetype-webapp (L'archetipo del webapp ZK) 612: remoto -> ru.circumflex:circumflex-archetype (-) 613: remoto -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 614: remoto -> sk.seges.sesam:sesam-annotation-archetype (-) Scegli un numero o applicare un filtro (formato: [groupId:]artifactId, case sensitive contains): 203:
Premi Inserisci Scegli l'opzione predefinita (203:maven-archetype-quickstart).
Scegli org.apache.maven.archetypes:maven-archetype-quickstart versione: 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 Scegli un numero: 6:
Premi Inserisci Scegli l'opzione predefinita (6:maven-archetype-quickstart:1.1)
Maven chiederà i dettagli del progetto. Inserisci i dettagli del progetto come richiesto. Se desideri usare i valori predefiniti, premi direttamente Invio. Puoi anche inserire i tuoi valori.
Definisci il valore per la proprietà 'groupId': : com.companyname.insurance Definisci il valore per la proprietà 'artifactId': : health Definisci il valore per la proprietà 'version': 1.0-SNAPSHOT Definisci il valore per la proprietà 'package': com.companyname.insurance
Maven richiederà di confermare i dettagli del progetto, premi Inserisci o premi Y
Conferma configurazione delle proprietà: groupId: com.companyname.insurance artifactId: health version: 1.0-SNAPSHOT package: com.companyname.insurance Y:
Ora Maven inizierà a creare la struttura del progetto, come mostrato di seguito:
[INFO] ----------------------------------------------------------------------- [INFO] Utilizzando i seguenti parametri per creare il progetto Da Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ----------------------------------------------------------------------- [INFO] Parametro: groupId, Valore: com.companyname.insurance [INFO] Parametro: packageName, Valore: com.companyname.insurance [INFO] Parametro: package, Valore: com.companyname.insurance [INFO] Parametro: artifactId, Valore: health [INFO] Parametro: basedir, Valore: C:\MVN [INFO] Parametro: version, Valore: 1.0-SNAPSHOT [INFO] Progetto creato da Old (1.x) Archetype nella directory: C:\MVN\health [INFO] ----------------------------------------------------------------------- [INFO] BUILD SUCCESSFUL [INFO] ----------------------------------------------------------------------- [INFO] Tempo totale: 4 minuti 12 secondi [INFO] Finito il: Ven 13 Lug 11:10:12 IST 2012 [INFO] Memoria finale: 20M/90M [INFO] -----------------------------------------------------------------------
Ora passiamo alla directory C:\ > MVN. Vedrai un progetto di applicazione java chiamato health, come il nome dell'artifactId creato durante la creazione del progetto. Maven creerà un progetto con una struttura di directory standard, come mostrato di seguito:
Maven genererà automaticamente un file pom.xml per il progetto, come segue:
<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 genererà automaticamente un file java di test chiamato App.java.
Percorso: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 genererà automaticamente un file java AppTest.java.
Il percorso è: 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 the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** Test rigoroso :-) */ public void testApp() { assertTrue( true ); } }
Ecco. Ora puoi vedere la potenza di Maven. Puoi creare qualsiasi tipo di progetto con comandi Maven semplici e puoi avviare lo sviluppo.