
FAQ Maven 2Consultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 74, dernière mise à jour : 22 septembre 2006
Sommaire→Utilisation- Quelle est la structure des répertoires préconisée par Maven ?
- Comment créer un projet de base ?
- Comment créer un projet WEB ?
- Comment utiliser un projet Maven avec Eclipse ?
- Comment indiquer à Maven une compilation avec le JDK 1.5 (TIGER) ?
- Comment nettoyer un projet Maven ?
- Comment ajouter des membres sur un projet ?
- Comment générer un descripteur Ant pour un projet Maven ?
- Comment compiler uniquement les sources des tests ?
- Comment compiler uniquement les sources ?
- Comment générer un JAR des sources ?
- Comment générer un JAR des sources des tests ?
- Comment générer un JAR des sources des tests ?
- Comment exécuter uniquement les tests sur un projet ?
- Comment lister les profils actifs d'un projet ?
- Comment connaître le paramétrage d'un projet ?
- Comment vérifier la validité d'un projet Maven ?
- Comment exécuter un script Ant sur une phase ?
- Comment créer une release d'un projet ?
- Comment modifier une des valeurs par défaut de la commande release:prepare ?
- Comment lancer une commande sur une version taggée ?
- Comment utiliser des propriétés du settings.xml dans le pom.xml ?
3.1. Gestion des dépendances
(5)
3.2. Site
(2)
3.3. Documentation
(9)
- Comment générer le site d'un projet ?
- Comment générer la javadoc pour un projet ?
- Comment vérifier la qualité du code avec checkstyle ?
- Comment vérifier la qualité du code avec PMD ?
- Comment connaître l'activité d'un projet ?
- Comment générer un rapport croisé des sources ?
- Comment analyser les métriques avec JDepend ?
- Comment générer un rapport des tags ?
- Comment générer un rapport de couverture des tests ?
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 :
|-- 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
Exécuter la commande suivante pour créer un projet basique :
mvn archetype:create -DgroupId=fr.monGroupId -DartifactId=MaBaseDeDonnees -Dpackagename=fr.monGroupId
Dans une console de commande DOS, exécuter la commande suivante pour créer un projet basique :
mvn archetype:create -DgroupId=fr.monGroupId -DartifactId=MonApplicationWeb
-Dpackagename=fr.monGroupId -DarchetypeArtifactId=maven-archetype-webapp
Eclipse a besoin de connaître le chemin du repository local de Maven.
Pour cela exécuter la commande suivante :
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 ?
Ajouter au fichier pom.xml les balises suivantes :
<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>
Il suffit de taper la commande suivante :
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.
Dans le fichier pom.xml du projet , ajouter une entrée comme ceci :
<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.
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn ant:ant
Un fichier build.xml est alors créé à la racine du projet.
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn compiler:testCompile
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn compiler:compile
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn source:jar
Le fichier JAR est généré dans le répertoire /target du projet.
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn source:test-jar
Le fichier JAR est généré dans le répertoire /target du projet.
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn test
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn help:active-profiles
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn help:effective-pom
Ou :
mvn help:effective-settings
Dans une console de commandes, accéder au répertoire du projet, et exécuter la commande suivante :
mvn validate
Cette commande vérifie que le projet possède toutes les informations nécessaires à son bon fonctionnement avec Maven.
Ajouter dans le fichier pom.xml les balises suivantes :
<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 :
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
Une release se déroule en deux étapes :
- 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.
- 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.
mvn release:prepare
Pour que la commande release:prepare utilise les valeurs par défaut implicitement, la commande est à lancer en mode batch :
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 :
mvn release:perform
Voir aussi : About Maven Release plugin
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 :
scm.tag=MonReleaseTag
Il est possible par exemple de déployer sur le référentiel une ancienne version du projet :
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.
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 :
<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 :
</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>


















