Utiliser Maven 2
Date de publication : 04/08/2008 , Date de mise à jour : 04/08/2008
5. Repository Maven
5.1. Définition d'un artifact
5.2. Repository Maven 2
5.3. Configurer des repositories
5. Repository Maven
5.1. Définition d'un artifact
Tous les artifacts gérés par Maven sont identifié par 4 informations :
-
groupId
: Définit l'organisation ou groupe qui est à l'origine du projet. Il est
formulé sous la forme d'un package Java (org.archetypejs par exemple)
-
artifactId
: Définit le nom unique dans le groupe pour le projet.
-
version
: Définit la version du projet. Les numéros de version sont souvent utilisés
pour des comparaisons et des mises à jour.
-
type
: Type de projet. On trouvera le plus souvent : jar, war, maven-plugin,
pom...
5.2. Repository Maven 2
Maven 2 définit une structure de fichiers qui permet de publier les artifacts.
Cette structure de fichiers est souvent publier sur le Web. En connaissant
simplement la racine, Maven peut alors chercher sur le site tout ce dont il a
besoin. Tous les repository Maven ne contiennent pas forcement tous les
artifacts.
Que ce soit pour les plugins Maven ou pour les dépendances ci desous, Maven gère
un localrepository là où il s'execute. Il y recopie tout ce qu'il télécharge.
Le localrepository se trouve toujours par défaut dans le répertoire
~/.m2/repository
(Sous windows, cela donne : C:\Document And
Settings\<User>\.m2\repository). Parcourir ce repertoire permet de se
faire une idée de la façon dont Maven gère ses fichiers. Il est rarement utile
d'aller modifier directement les fichiers dans ce répertoire.
La structure dans un repository est la suivante : le groupId est divisé sur le
caractère ".", chaque morceau est utilisé pour créer des répetoire du même nom
("com.developpez" devient "com/developpez"). Ensuite on retrouve un répertoire
correspondant à l'artifactId et enfin un répertoire pour le numéro de version.
Dans ce dernier répertoire on trouve alors tous les fichiers constituant
l'artifact.
Maven vérifie d'abord dans son localrepository la disponibilité d'un projet
avant de le chercher sur Internet. Ainsi il n'y a que la première execution d'un
nouveau goal ou d'une nouvelle résolution de dépendance qui prend du temps. La
seconde fois, les packets seront déjà disponibles en local.
5.3. Configurer des repositories
Maven utilise, par défaut, un serveur central qui contient énormément de jar et
la pratiquement tous les plugins Maven.
Pour ajouter des repository, il faut ajouter dans le pom.xml :
Configuration poura ajouter des repository |
< repositories >
< repository >
< id > repo< / id >
< name > repo name< / name >
< url > url< / url >
< / repository >
< / repositories >
< pluginRepositories >
< pluginRepository >
< id > plugin repo< / id >
< name > plugin repo name< / name >
< url > url< / url >
< / pluginRepository >
< / pluginRepositories >
|
Comme on peut le voir, Maven differencie les repository qui contiennent les
plugins de ceux qui contiennent les dépendances.
Par défaut dans Maven, un repository principal est configuré. Il est extremement
bien fourni et suffit souvent à trouver les frameworks les plus courant. Même
s'il a eu des problèmes de disponibilités dans le passé, il est maintenant très
stable. Ses références sont les suivantes :
Configuration du repository central |
< repositories >
< repository >
< id > central< / id >
< name > Maven Repository Switchboard< / name >
< layout > default< / layout >
< url > http://repo1.maven.org/maven2< / url >
< snapshots >
< enabled > false< / enabled >
< / snapshots >
< / repository >
< / repositories >
< pluginRepositories >
< pluginRepository >
< id > central< / id >
< name > Maven Plugin Repository< / name >
< url > http://repo1.maven.org/maven2< / url >
< layout > default< / layout >
< snapshots >
< enabled > false< / enabled >
< / snapshots >
< releases >
< updatePolicy > never< / updatePolicy >
< / releases >
< / pluginRepository >
< / pluginRepositories >
|
Il n'y a pas si longtemps, il était inévitable de rajouter plusieurs autres
repository public notamment pour trouver les artifact JBoss (dont Hibernate)
etc... Ce n'est plus le cas, ils sont tous aujourd'hui centralisé dans le
repository central.
Pour des questions de performances et de centralisation, il est aujourd'hui
préférable de n'ajouter des repositories que pour des repository privée ou pour
des projets en devenir qui ne sont pas encore sur le repository central.
|
Le cycle install déploie le projet dans le repository local. Après avoir lancer
mvn install
, il est possible de vérifier que notre projet à été copié dans le repository local
:
|
Localisation de l'artifact du projet dans le local repository |
+- ~
+- .m2
+- repository
+- com
+- developpez
+- cours-maven-example
+- 1.0
+- cours-maven-example-1.0.jar
+- cours-maven-example-1.0.pom
|
Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à
votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre
intellectuelle protégée par les droits d'auteurs. Copyright Matthieu Lux . Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu
: textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous
encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets.