Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

FAQ Maven 2Consultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 89, dernière mise à jour : 17 mai 2009 

 
OuvrirSommaireUtilisation

Maven propose une structure de répertoire "type" pour tous les projets.

Il est bien entendu possible d'adopter une autre structure, mais cela est bien souvent très coûteux et compliqué pour un intêret discutable.

La structure par défaut est la suivante :

Structure par défaut d'un projet Maven
Sélectionnez

|-- src
| |-- main
| | |-- java      > Contient le code source java
| | |-- resources > Contient les ressources à inclure dans le jar produit (configuration, ...)
| | |-- filters   > Filtres permettant de modifier les ressources lors de l'assemblage du jar
| | |-- assembly  > Descripteur pour les assemblées Maven
| | |-- config    > Fichier de configurations extérieurs au jar
| | |-- webapp    > Le contenu de l'application web (projet web)
| |-- test
| | |-- java      > Contient le code source java des tests
| | |-- resources > Contient les ressources pour les tests
| | |-- filters   > Filtres à appliquer aux ressources de test
| |-- site        > Le site de documentation
|-- target        > Répertoire où Maven génére ses fichiers/artefacts
|-- pom.xml       > Descripteur du projet

Voir aussi : Introduction to the Standard Directory Layout

Mis à jour le 17 juillet 2006  par Denis Cabasson, Eric Reboisson

Il se peut que vous ayez besoin d'utiliser votre propre structure de répertoires, cela se fait en modifiant dans le fichier pom.xml :

Exemple de paramétrage des répertoires
Sélectionnez

<project>
  <build>
    ...
    <sourceDirectory>${basedir}/messources</sourceDirectory>
    <scriptSourceDirectory>${basedir}/messcripts</scriptSourceDirectory>
    <testSourceDirectory>${basedir}/mestest</testSourceDirectory>
    <outputDirectory>${basedir}/mesclasses</outputDirectory>
    <testOutputDirectory>${basedir}/mesclassestests</testOutputDirectory>
    ...
  </build>
</project>
Créé le 31 août 2007  par Eric Reboisson

Exécuter la commande suivante pour créer un projet basique :

 
Sélectionnez

mvn archetype:create -DgroupId=fr.monGroupId -DartifactId=MaBaseDeDonnees -Dpackagename=fr.monGroupId
Mis à jour le 17 juillet 2006  par Eric Reboisson

Dans une console de commande DOS, exécuter la commande suivante pour créer un projet basique :

 
Sélectionnez

mvn archetype:create -DgroupId=fr.monGroupId -DartifactId=MonApplicationWeb 
-Dpackagename=fr.monGroupId -DarchetypeArtifactId=maven-archetype-webapp
Mis à jour le 17 juillet 2006  par Eric Reboisson

Eclipse a besoin de connaître le chemin du repository local de Maven.

Pour cela exécuter la commande suivante :

 
Sélectionnez

mvn -Declipse.workspace="C:\workspace_eclipse" eclipse:add-maven-repo

Pour utiliser Maven comme un outil externe dans Eclipse, dans la barre de menu sélectionner Window > Preferences, puis sélectionner Run/debug > String Substitution.

Ajouter une nouvelle variable, par exemple maven_exec avec pour valeur %MVN_HOME%\bin\mvn.bat.

Sélectionner ensuite Run > External Tools, sélectionner Program, dans le champ location indiquer la variable maven_exec.

Indiquer dans le champ working directory le chemin vers votre projet Maven.

Enfin indiquer les arguments à passer à la commande mvn dans le champ des arguments ( e.g : eclipse:eclipse pour indiquer la génération de descripteurs de projet Eclipse )

Exécuter ensuite ce programme, puis importer votre projet dans le workspace d'Eclipse.

A noter que vous pouvez également utiliser le Plug-in décrit dans Comment installer le Plug-in Maven 2.x pour Eclipse ?

Mis à jour le 17 juillet 2006  par Eric Reboisson

Ajouter au fichier pom.xml les balises suivantes :

Compilation avec JDK 1.5
Sélectionnez

<build>

  <plugins>
  
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      
      <configuration>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>
    
  </plugins>
  
</build>
Mis à jour le 17 juillet 2006  par Eric Reboisson

Il suffit de taper la commande suivante :

Nettoyer un projet
Sélectionnez

mvn clean

Les répertoires project.build.directory (par défaut target), project.build.outputDirectory (par défaut target/classes), project.build.testOutputDirectory (par défaut target/test-classes) et project.reporting.outputDirectory (par défaut target/site) seront entièrement supprimés.

Il est vivement conseillé d'exécuter la tâche clean avant toute autre opération.

Créé le 13 août 2006  par Eric Reboisson

Dans le fichier pom.xml du projet , ajouter une entrée comme ceci :

Ajout d'un membre au projet
Sélectionnez

<developers>

  <developer>
    <id>prenomnom</id>
    <name>Prénom NOM</name>
    <email>prenom.nom@domaine.com</email>
    <url>http://www.societe.fr</url>
    <organization>SOCIETE</organization>
    <organizationUrl>http://www.societe.fr</organizationUrl>
    
    <roles>
      <role>administrateur</role>
    </roles>
    
    <timezone>0</timezone>
    <properties><messenger>test</messenger></properties>
  </developer>
  
</developers>

L'id est utilisé par les outils d'intégration continue tel que Continuum pour faire le mapping entre l'auteur d'un commit dans l'outil de gestion de conf est le développeur déclaré dans le POM.

Mis à jour le 17 juillet 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Générer un fichier Ant build.xml
Sélectionnez

mvn ant:ant

Un fichier build.xml est alors créé à la racine du projet.

Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Compiler les tests
Sélectionnez

mvn compiler:testCompile
Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Compiler les sources
Sélectionnez

mvn compiler:compile
Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Générer le JAR
Sélectionnez

mvn source:jar

Le fichier JAR est généré dans le répertoire /target du projet.

Créé le 11 septembre 2006  par Eric Reboisson

En modifiant dans le fichier pom.xml :

Générer un JAR des sources
Sélectionnez

<build>
  <plugins>
    ...
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>bind-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
  </plugins>
</build>      
Créé le 31 août 2007  par Denis Cabasson, Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Générer le JAR
Sélectionnez

mvn source:test-jar

Le fichier JAR est généré dans le répertoire /target du projet.

Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Exécuter les tests
Sélectionnez

mvn test
Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Liste des profils actifs
Sélectionnez

mvn help:active-profiles
Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Paramétrage du projet
Sélectionnez

mvn help:effective-pom

Ou :

Paramétrage du projet
Sélectionnez

mvn help:effective-settings
Créé le 11 septembre 2006  par Eric Reboisson

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

Générer le JAR
Sélectionnez

mvn validate

Cette commande vérifie que le projet possède toutes les informations nécessaires à son bon fonctionnement avec Maven.

Créé le 11 septembre 2006  par Eric Reboisson

Ajouter dans le fichier pom.xml les balises suivantes :

Exemple : associer un script Ant à la phase validate
Sélectionnez

<project>
...
 <build>
   <plugins>
     <plugin>
       <artifactId>maven-antrun-plugin</artifactId>
       <executions>
         <execution>
           <phase>validate</phase>
           <configuration>
             <tasks>
                 <echo file="${basedir}/hello.txt">hello world</echo>
             </tasks>
           </configuration>
           <goals>
             <goal>run</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
   </plugins>
 </build> 
...
</project>

Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

 
Sélectionnez

mvn validate

Le script Ant redirigeant "hello world" dans un fichier hello.txt à la racine du projet, a été traité en même temps que la phase validate.

Voir aussi : About Maven Ant Plugin

Créé le 11 septembre 2006  par Eric Reboisson

Une release se déroule en deux étapes :

  1. release:prepare : exécutée une seule fois par release, cette tâche effectue toutes les manipulations nécessaires au sein du projet et du gestionnaire de sources (SCM) aboutissant à une version taggée dans le SCM.
  2. release:perform : executée autant de fois que nécessaire, cette tâche permet une recontruction à partir de la version précédemment taggée (par le release:prepare) et aboutit à un déploiement de l'artifact sur le référentiel distant (remote repository)

Pour une release:prepare, dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

La commande release:prepare inclut plusieurs saisies utilisateurs avec à chaque fois une valeur par défaut.

 
Sélectionnez

mvn release:prepare

Pour que la commande release:prepare utilise les valeurs par défaut implicitement, la commande est à lancer en mode batch :

 
Sélectionnez

mvn --batch-mode release:prepare

Pour une release:perform, dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :

 
Sélectionnez

mvn release:perform

Voir aussi : About Maven Release plugin

Créé le 22 septembre 2006  par Jibee, Eric Reboisson

La commande release:prepare se base sur un fichier release.properties créé par la commande elle-même à la racine du projet.

Il est possible de créer soit même et par avance le fichier release.properties en renseignant les valeurs par défaut.

Par exemple, pour définir le tag utilisé dans le SCM pour la release :

 
Sélectionnez

scm.tag=MonReleaseTag
Créé le 22 septembre 2006  par Jibee, Eric Reboisson

Il est possible par exemple de déployer sur le référentiel une ancienne version du projet :

Déployer un tag précédent du projet
Sélectionnez

mvn scm:bootstrap -Dtag=[TAG_SCM] -Dgoals=deploy

[TAG_SCM] étant le libellé du tag dans le gestionnaire de sources correspondant à la release sur laquelle on souhaite travailler.

Créé le 22 septembre 2006  par Jibee, Eric Reboisson

Il est possible de paramétrer dans le fichier settings.xml des propriétés utilisables dans le pom.xml.

Il faut définir premièrement la propriété dans le fichier settings.xml :

Configuration dans settings.xml
Sélectionnez

<settings>
  ...
  <profiles>
    <profile>
      <id>inject-application-home</id>
      <properties>
        <application-home>/path/to/application</application-home>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>inject-application-home</activeProfile>
  </activeProfiles>
</settings>

Et ensuite l'utiliser dans le pom.xml, un exemple avec la génération du rapport des tags :

 
Sélectionnez

</project>
...
<reporting>
  <plugins>

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.0</version>
                
        <configuration>
            <outputDirectory>${application-home}</outputDirectory>
        </configuration>
    </plugin>
    
  </plugins>
  
  </reporting>
...  
</project>
Créé le 22 septembre 2006  par Eric Reboisson

Il suffit d'utiliser la notation ${env.X} dans le fichier pom.xml, où X doit être remplacé par le nom d'une variable d'environnement.

Par exemple, pour accéder au PATH sous Windows ce sera ${env.PATH} que vous utiliserez dans le pom.xml.

Créé le 31 août 2007  par Eric Reboisson

En ajoutant l'option suivante à la ligne de commande :

Désactivation des tests en ligne de commande
Sélectionnez

mvn -Dmaven.test.skip=true install

Ou en désactivant la réalisation des tests dans le pom.xml :

Désactivation des tests dans le pom.xml
Sélectionnez

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    
	<configuration>
      <skip>true</skip>
    </configuration>
    
</plugin>
Créé le 31 août 2007  par Eric Reboisson

Il n'y a pas de commande pour effectuer cette opération, il suffit de supprimer le répertoire de l'artefact dans le repository.

Créé le 31 août 2007  par Eric Reboisson
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.