IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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és 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 publiée 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'exécute. 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 répertoire 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 exécution 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 pratiquement tous les plugins de base de 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 extrêmement 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és 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 repositories privés ou pour des projets en devenir qui ne sont pas encore sur le repository central.

idea 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
			
 

Valid XHTML 1.1!Valid CSS!

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.