Maven - Modèles de projets

Maven fournit aux utilisateurs une très grande liste de différents types de modèles de projets (614 en chiffres) utilisant le concept de Archetype. Maven aide les utilisateurs à démarrer rapidement un nouveau projet java à l'aide de la commande suivante.

mvn archetype:generate

Qu'est-ce que l'archétype?

Archetype est un plugin Maven dont la tâche est de créer une structure de projet selon son modèle. Nous allons utiliser le plugin d'archétype de démarrage rapide pour créer une application Java simple ici.

Utilisation du modèle de projet

Ouvrons la console de commande, allons à la C:\ > MVN répertoire et exécutez ce qui suit mvn commander.

C:\MVN>mvn archetype:generate

Maven commencera le traitement et demandera de choisir l'archétype requis.

[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

Basic setup for a project that combines Scala and Wicket,
depending on the Wicket-Scala project.
Includes an example Specs test.)

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
   (Make it easy to create a maven project for creating XWiki Components.)
609: remote −> org.xwiki.rendering:xwiki-rendering-archetype-macro
   (Make it easy to create a maven project for creating XWiki Rendering Macros.)
610: remote −> org.zkoss:zk-archetype-component (The ZK Component archetype)
611: remote −> org.zkoss:zk-archetype-webapp (The ZK wepapp archetype)
612: remote −> ru.circumflex:circumflex-archetype (-)
613: remote −> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-)
614: remote −> sk.seges.sesam:sesam-annotation-archetype (-)
Choose a number or apply filter
(format: [groupId:]artifactId, case sensitive contains): 203:

Appuyez sur Entrée pour choisir l'option par défaut (203: maven-archetype-quickstart)

Maven demandera une version particulière de l'archétype.

Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
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
Choose a number: 6:

Appuyez sur Entrée pour choisir l'option par défaut (6: maven-archetype-quickstart: 1.1)

Maven demandera les détails du projet. Entrez les détails du projet comme demandé. Appuyez sur Entrée si la valeur par défaut est fournie. Vous pouvez les remplacer en entrant votre propre valeur.

Define value for property 'groupId': : com.companyname.insurance
Define value for property 'artifactId': : health
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.companyname.insurance:

Maven demandera la confirmation des détails du projet. Appuyez sur entrée ou appuyez sur Y.

Confirm properties configuration:
groupId: com.companyname.insurance
artifactId: health
version: 1.0-SNAPSHOT
package: com.companyname.insurance
Y:

Maintenant, Maven commencera à créer la structure du projet et affichera ce qui suit -

[INFO]-----------------------------------------------
[INFO] Using following parameters for creating project
from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO]-----------------------------------------------

[INFO] Parameter: groupId, Value: com.companyname.insurance
[INFO] Parameter: packageName, Value: com.companyname.insurance
[INFO] Parameter: package, Value: com.companyname.insurance
[INFO] Parameter: artifactId, Value: health
[INFO] Parameter: basedir, Value: C:\MVN
[INFO] Parameter: version, Value: 1.0-SNAPSHOT

[INFO] project created from Old (1.x) Archetype in dir: C:\MVN\health
[INFO]-----------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]-----------------------------------------------
[INFO] Total time: 4 minutes 12 seconds
[INFO] Finished at: Fri Jul 13 11:10:12 IST 2012
[INFO] Final Memory: 20M/90M
[INFO]-----------------------------------------------

Projet créé

Allez maintenant à C:\ > MVNannuaire. Vous verrez un projet d'application Java créé, nomméhealth, qui a été donné comme artifactIdau moment de la création du projet. Maven créera une disposition de répertoire standard pour le projet comme indiqué ci-dessous -

Créé POM.xml

Maven génère un fichier POM.xml pour le projet comme indiqué ci-dessous -

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

Créé App.java

Maven génère un exemple de fichier source java, App.java pour le projet comme indiqué ci-dessous -

Emplacement: C:\ > MVN > health > src > main > java > com > companyname > insurance > App.java.

package com.companyname.insurance;

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

Créé AppTest.java

Maven génère un exemple de fichier de test source java, AppTest.java pour le projet comme indiqué ci-dessous -

Emplacement: C:\ > MVN > health > src > test > java > com > companyname > insurance > AppTest.java.

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 );
   }
   /**
      * Rigourous Test :-)
   */
   public void testApp() {
      assertTrue( true );
   }
}

Vous pouvez maintenant voir la puissance de Maven. Vous pouvez créer tout type de projet en utilisant une seule commande dans maven et démarrer votre développement.

Différents archétypes

N ° Sr. Archétype ArtefactIds & Description
1

maven-archetype-archetype

Un archétype, qui contient un exemple d'archétype.

2

maven-archetype-j2ee-simple

Un archétype, qui contient un exemple d'application J2EE simplifié.

3

maven-archetype-mojo

Un archétype, qui contient un exemple d'un exemple de plugin Maven.

4

maven-archetype-plugin

Un archétype, qui contient un exemple de plugin Maven.

5

maven-archetype-plugin-site

Un archétype, qui contient un exemple de site de plugin Maven.

6

maven-archetype-portlet

Un archétype, qui contient un exemple de portlet JSR-268.

sept

maven-archetype-quickstart

Un archétype, qui contient un exemple de projet Maven.

8

maven-archetype-simple

Un archétype, qui contient un simple projet Maven.

9

maven-archetype-site

Un archétype, qui contient un exemple de site Maven pour illustrer certains des types de documents pris en charge tels que APT, XDoc et FML et explique comment i18n votre site.

dix

maven-archetype-site-simple

Un archétype, qui contient un exemple de site Maven.

11

maven-archetype-webapp

Un archétype, qui contient un exemple de projet Maven Webapp.