Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    3.5.3. Les coordonnées Maven

    Le plugin Archetype a créé un projet avec un fichier pom.xml. Ceci est le Project Object Model (POM), une description déclarative d'un projet. Quand Maven exécute un goal, celui-ci a accès aux informations définies dans le POM du projet. Lorsque le goal jar:jar veut créer un fichier JAR, il va chercher dans le POM le nom du fichier JAR. Quand le goal compiler:compile compile le source code Java en bytecode, il va regarder dans le POM pour voir si on a précisé des options de compilation. Les goals s'exécutent dans le contexte d'un POM. Les goals sont les actions que nous voulons appliquer à un projet et un projet est défini par un POM. Le POM donne son nom au projet, il fournit un ensemble d'identifiants uniques (les coordonnées) du projet et précise les relations entre ce projet et d'autres qu'il s'agisse de dépendances, de parents ou de prérequis. Un POM permet aussi de personnaliser le comportement d'un plugin, et de fournir des informations sur la communauté et les développeurs du projet.

    Les coordonnées Maven définissent un ensemble d'identifiants qui permet d'identifier de manière unique un projet, une dépendance, ou un plugin dans un POM Maven. Regardez le POM qui va suivre.

    Coordonnées d'un projet Maven

    Figure 3.4. Coordonnées d'un projet Maven


    Nous avons mis en évidence les coordonnées Maven de ce projet : groupId, artifactId, version et packaging. Ces identifiants combinés forment ce qu'on appelle les coordonnées d'un projet[3]. Comme dans tout système à coordonnées, les coordonnées Maven permettent de définir un point spécifique dans "l'espace". Lorsqu'un projet est relié à un autre en tant que dépendance, plugin ou comme projet parent, Maven l'identifie via ses coordonnées. Les coordonnées Maven sont souvent écrites en utilisant les deux points comme séparateur selon le format suivant : groupId:artifactId:packaging:version. Dans le fichier pom.xml ci-dessus, les coordonnées de notre projet sont les suivantes : mavenbook:my-app:jar:1.0-SNAPSHOT.

    groupId

    Le groupe, l'entreprise, l'équipe, l'organisation, le projet ou autre groupe. La convention pour les identifiants du groupe est qu'ils commencent par le nom de domaine inversé de l'organisation qui crée le projet. Les projets de Sonatype devraient avoir un groupId qui commence par com.sonatype, et les projets de l'Apache Software Foundation devraient avoir un groupId qui commence par org.apache.

    artifactId

    Identifiant unique sous le groupId qui représente un projet unique.

    version

    Version spécifique d'un projet. Les projets qui ont été livrés ont un identifiant de version fixe qui fait référence à une version bien spécifique du projet. Les projets en cours de développement peuvent utiliser un identifiant de version qui indique que cette version n'est pas stable : SNAPSHOT.

    Le format de packaging est aussi un composant important des coordonnées Maven, mais il ne fait pas partie des identifiants uniques d'un projet. Le triplet groupId:artifactId:version d'un projet identifie de manière unique un projet ; vous ne pouvez pas avoir un projet avec le même triplet groupId, artifactId, et version.

    packaging

    Le type du projet, jar par défaut, décrit le résultat packagé produit par le projet. Un projet avec un packaging jar produit une archive JAR ; un projet avec un packaging war produit, quant à lui, une application web.

    Ces quatre éléments sont la clef pour trouver et utiliser un projet particulier dans le vaste monde des projets "Mavenisés". Les dépôts Maven (publics, privés, et locaux) sont organisés autour de ces identifiants. Lorsque ce projet est installé dans le dépôt Maven local, il devient immédiatement disponible pour tout autre projet qui voudrait l'utiliser. Tout ce que vous avez à faire est de l'ajouter comme dépendance à un autre projet en utilisant les coordonnées Maven uniques propres à l'artefact.

    L'Espace des projets Maven est un système à coordonnées

    Figure 3.5. L'Espace des projets Maven est un système à coordonnées




    [3] Il existe une cinquième coordonnée, plus rarement utilisée, appelée classifier dont nous parlerons plus tard dans le livre. Vous pouvez l'oublier pour l'instant.