| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
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.
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.
groupIdLe 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.
artifactIdIdentifiant unique sous le groupId qui représente un projet unique.
versionVersion 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.
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.
[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.