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

Modello di progetto Maven

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

What is an archetype?

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.

Using project template

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).

Maven chiederà la versione dell'archetipo

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] -----------------------------------------------------------------------

Il progetto creato

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:

Creare pom.xml

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>

App.java

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!" );
    }
}

AppTest.java

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.