FAQ MavenConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 97, dernière mise à jour : 12 mai 2014  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.


SommaireTerminologie et documentation (8)
précédent sommaire suivant
 

Maven est essentiellement un outil de gestion et de compréhension de projet.

Maven offre des fonctionnalités de :

  • construction , compilation ;
  • documentation ;
  • rapport ;
  • gestion des dépendances ;
  • gestion des sources ;
  • mise à jour de projet ;
  • déploiement.

Mis à jour le 17 juillet 2006 elitost

Le POM (Project Object Model) est une façon de décrire, de manière déclarative, un projet au sens de Maven. Cette description est contenue dans le fichier pom.xml présent dans le repertoire de base du projet. Le fichier pom.xml contient donc tous les éléments permettant de gérer le cycle de vie du projet.

Code xml : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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/maven-v4_0_0.xsd"> 
  
  <modelVersion>4.0.0</modelVersion> 
  <groupId>com.mycompany.app</groupId> 
  <artifactId>my-app</artifactId> 
  <packaging>jar</packaging> 
  <version>1.0-SNAPSHOT</version> 
  <name>Maven Quick Start Archetype</name> 
  <url>http://maven.apache.org</url> 
  
  <dependencies> 
    <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
    </dependency> 
  </dependencies> 
  
</project>

  • project : c'est la balise racine de tous les fichiers pom.xml.
  • modelVersion : cette balise indique la version de POM utilisée. Bien que cette version ne change pas fréquemment, elle est obligatoire afin de garantir la stabilité d'utilisation.
  • groupId : cette balise permet d'identifier un groupe qui a créé le projet. Cette clé permet d'organiser et de retrouver plus facilement et rapidement le projet.
  • artifactId : cette balise indique un nom unique utilisé pour nommer les artifacts à construire.
  • packaging : type de packaging du projet ( ex. : JAR, WAR, EAR, etc.).
  • version : version de l'artifact généré par le projet.
  • name : nom du projet.
  • url : adresse du site du projet.
  • description : description du projet.
  • dependencies : balise permettant de gérer les dépendances.

Mis à jour le 17 juillet 2006 elitost

Un archetype est un template de projet. Le fait d'utiliser des archetypes pour initialiser un projet permet de gagner du temps et de respecter une certaine convention.

Mis à jour le 13 août 2006 elitost evenisse

Une dépendance est une référence vers un artefact spécifique contenu dans un repository. Cet artefact est nécessaire pour une ou plusieurs phases du cycle de vie du projet.

L'exemple le plus simple est une dépendance sur une bibliothèque jar qui permet d'en utiliser le contenu dans le projet.

Mis à jour le 17 juillet 2006 denisC elitost

Dans Maven, un artefact est un élément spécifique issu de la construction du logiciel.

Dans Java, les artefacts les plus communs sont des JARs, mais ce peut être aussi un fichier WAR, un EAR, un ZIP, etc.

Mis à jour le 17 juillet 2006 denisC elitost

Le groupId est l'identifiant du groupe, à l'origine du projet. GroupId suit les mêmes règles de nommage que les packages Java (exemple : fr.masociete.monprojet), et on choisit généralement comme groupId le nom du top package du projet.

L'artifactId est l'identifiant du projet au sein de ce groupe.

L'artifactId est utilisé par défaut pour construire le nom de l'artefact final (exemple : pour un artifactId=monprojet, le nom du fichier jar généré sera monprojet-version.jar).

Mis à jour le 17 juillet 2006 denisC elitost

Par convention, une version en cours de développement d'un projet voit son numéro de version suivi d'un -SNAPSHOT.

Ainsi un projet en version 2.0-SNAPSHOT signifie que cette version est une pré-version de la version 2.0, en cours de développement.

Ce concept de SNAPSHOT est particulièrement important pour Maven. En effet, dans la gestion des dépendances, Maven va chercher à mettre à jour les versions SNAPSHOT régulièrement pour prendre en compte les derniers développements.

Utiliser une version SNAPSHOT permet de bénéficier des dernières fonctionnalités d'un projet, mais en contrepartie, cette version peut être (et est) appelée à être modifiée de façon importante, sans aucun préavis.

Mis à jour le 17 juillet 2006 denisC elitost

Pour plus de renseignements sur la gestion des versions dans Maven, voir aussi : Dependency Mediation and Conflict Resolution

Un repository local est un répertoire sur le poste du développeur permettant de stocker, suivant la même arborescence, tous les artefacts téléchargés depuis le(s) repository distant(s).

Un projet ayant pour POM :

Code xml : Sélectionner tout
1
2
3
4
5
6
<project> 
  <modelVersion>4.0.0</modelVersion> 
  <groupId>fr.masociete</groupId> 
  <artifactId>monprojet</artifactId> 
  <version>1.0</version> 
</project>
sera stocké, dans le repository, suivant cette arborescence : ${repository_home}/fr/masociete/monprojet/1.0/

Mis à jour le 17 juillet 2006 elitost

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

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 © 2017 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.

 
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -