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

Modèle de projet Maven

Maven utilise l'archetype (prototype) pour créer une structure de projet personnalisée, formant ainsi un modèle de projet Maven.

Dans les chapitres précédents, nous avons appris que Maven utilise la commande suivante pour créer rapidement un projet java :

mvn archetype:generate

Qu'est-ce qu'un archetype ?

L'archetype, ou prototype, est une extension Maven, précisément un modèle de projet, dont la tâche consiste à créer une structure de projet à partir du modèle. Nous allons utiliser l'extension archetype quickstart pour créer une application java simple.

Utilisation du modèle de projet

Ouvrons la console de commande, passons au répertoire C:\> MVN et exécutons la commande mvn suivante:

C:\MVN> mvn archetype:generate

Maven va commencer à traiter et nécessiter le choix du prototype souhaité:

[INFO] Recherche des projets...
[INFO] Recherche dans le dépôt pour le plugin avec le préfixe: 'archetype'.
[INFO] -------------------------------------------------------------------
[INFO] Construction du projet Maven par défaut
[INFO] tâche-segment: [archetype:generate] (aggregator-style)
[INFO] -------------------------------------------------------------------
[INFO] Préparation de l'archetype:generate
...
600: distant -> org.trailsframework:trails-archetype (-)
601: remote -> org.trailsframework:trails-sécurisé-archetype (-)
602: remote -> org.tynamo:tynamo-archetype (-)
603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-)
604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype 
Configuration de base pour un projet combinant Scala et Wicket,
en fonction de Wicket-Projet Scala. 
Inclut un exemple de 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 
(Facilite la création d'un projet Maven pour créer des Composants XWiki.)
609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro 
(Facilite la création d'un projet Maven pour créer des Macros de Rendering XWiki.)
610: remote -> org.zkoss:zk-archetype-component (L'archetype ZK Component)
611: remote -> org.zkoss:zk-archetype-webapp (L'archetype ZK wepapp)
612: remote -> ru.circumflex:circumflex-archetype (-)
613: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-)
614: remote -> sk.seges.sesam:sesam-annotation-archetype (-)
Choisissez un numéro ou appliquez un filtre 
(format: [groupId:]artifactId, sensible à la casse contient): 203:

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

Maven demandera la version de l'archetype

Choisissez org.apache.maven.archetypes:maven-archetype-version 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
Choisissez un numéro: 6:

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

Maven demandera les détails du projet. Entrez les détails du projet selon les instructions. Si vous souhaitez utiliser les valeurs par défaut, appuyez directement sur la touche Entrée. Vous pouvez également entrer vos propres valeurs.

Définir la valeur pour la propriété 'groupId' : : com.companyname.insurance
Définir la valeur pour la propriété 'artifactId' : : health
Définir la valeur pour la propriété 'version' 1.0-SNAPSHOT
Définir la valeur pour la propriété 'package' : com.companyname.insurance

Maven demandera de confirmer les détails du projet, appuyez sur}} Entrée ou appuyez sur Y

Confirmez la configuration des propriétés
groupId: com.companyname.insurance
artifactId: health
version: 1.0-SNAPSHOT
package: com.companyname.insurance
Y:

Maintenant, Maven va commencer à créer la structure du projet, comme suit :

[INFO] -----------------------------------------------------------------------
[INFO] Utilisation des paramètres suivants pour créer le projet 
à partir de l'Ancien (1.x) Archetype : maven-archetype-quickstart:1.1
[INFO] -----------------------------------------------------------------------
[INFO] Paramètre : groupId, Valeur : com.companyname.insurance
[INFO] Paramètre : packageName, Valeur : com.companyname.insurance
[INFO] Paramètre : package, Valeur : com.companyname.insurance
[INFO] Paramètre : artifactId, Valeur : health
[INFO] Paramètre : basedir, Valeur : C:\MVN
[INFO] Paramètre : version, Valeur : 1.0-SNAPSHOT
[INFO] Projet créé à partir de l'Ancien (1.x) Archetype dans le répertoire : C:\MVN\health
[INFO] -----------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] -----------------------------------------------------------------------
[INFO] Temps total : 4 minutes 12 secondes
[INFO] Terminé à : Ven Jul 13 11:10:12 IST 2012
[INFO] Mémoire finale : 20M/90M
[INFO] -----------------------------------------------------------------------

Projet créé

Maintenant, passez au répertoire C:\ > MVN. Vous verrez un projet d'application java nommé health, comme le nom de l'artifactId créé lors de la création du projet. Maven créera un projet avec une structure de répertoires standard, comme suit :

Créer pom.xml

Maven génère automatiquement un fichier pom.xml pour le projet, comme suit :

<projet 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">
  <versionModèle>4.0.0/>versionModèle<
  <groupeId>com.companyname.insurance</>groupeId<
  <idArtificiel>health</>idArtificiel<
  <version>1.0-SNAPSHOT/>version<
  <emballage>jar</>emballage<
  <nom>health</>nom<
  <url>http://maven.apache.org</>url<
  <propriétés>
     <encodageSourceProjet.build>UTF-8</>encodageSourceProjet.build<
  </>propriétés<
  <dépendances>
     <dépendance>
     <groupeId>junit</>groupeId<
        <idArtificiel>junit</>idArtificiel<
        <version>3.8.1</>version<
        <portée>test</>portée<
     </>dépendance<
  </>dépendances<
</>projet<

App.java

Maven génère automatiquement un fichier java de test appelé App.java.

chemin :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 génère automatiquement un fichier java AppTest.java.

L'itinéraire est : 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;
 
/**
* Test unitaire pour une simple App.
*/
public class AppTest 
   extends TestCase
{
   /**
   * Créer le cas de test
   *
   * @param testName nom du cas de test
   */
  public AppTest( String testName )
  {
      super( testName );
  }
 
  /**
  * @return l'ensemble des tests à tester
  */
  public static Test suite()
  {
      return new TestSuite( AppTest.class );
  }
 
  /**
  * Test rigoureux :-)
  */
  public void testApp()
  {
      assertTrue( true );
  }
}

C'est ainsi. Maintenant, vous pouvez voir la puissance de Maven. Vous pouvez créer n'importe quel type de projet avec des commandes Maven simples et démarrer votre développement.