mai242011

Configuration de Maven

un commentaire une annexe

apache-maven-project-2.pngRécemment, j'ai du ré-installer plusieurs environnement de développement, et je voulais partager avec vous ce petit guide de configuration de maven.
Car si l'installation est des plus simple, la configuration l'est beaucoup moins.

 

EnglishVersion

 

Sous ubuntu, l'installation se résume à :

sudo apt-get install maven2

Les fichiers sont installés dans le dossier /usr/share/maven2 et la configuration dans /etc/maven2.

Sous windows, télécharger une archive de maven et dézippé la sous c:\maven2. Vous pouvez trouver cela sur Apache

Les fichiers sont installés dans le dossier c:\maven2 et la configuration dansc:\maven2\conf.

Toujours sous Windows, v&eactue;rifiez que vous avez bien les variables d'environnement: (echo %NOM_VARIABLE%)

  • JAVA_HOME: qui pointe vers un JDK et pas un JRE
  • M2_HOME: qui pointe sur "c:\maven2"
  • un PATH qui contient "c:\maven2\bin"

Si ce n'est pas le cas, positionnez ces valeurs, ouvrez un nouveaux terminal, testez.

 

Création du repository local

Création du dossier dans /usr/local/m2-repository/ (ou c:\maven2\m2-repository) et on positionne les droits d'écriture pour tous le monde.

C'est dans ce dossier que l'ensemble des libraries vont être copiée, selon les besoins de vos projets.

cd /usr/local
sudo mkdir m2-repository
sudo chmod a+w  m2-repository/

 

Configuration minimal

Edition du fichier de configuraton "settings.xml", pour indiquer où se trouve le repository local et quel miroir utiliser.

(Le repository officiel de maven est "http://repo1.maven.org/", afin d'avoir des temps de réponse raisonnable nous utilisons un miroir)

<!-- local repository diractory -->
<localRepository>/usr/local/m2-repository</localRepository>
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central, maven-central-repository</mirrorOf>
</mirror>
</mirrors>

 

Vérification de l'installation

On saisie:

mvn -version

 

Et cela devrait vous donner quelque chose comme cela:

Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_17
Java home: /usr/local/jdk1.6.0_17/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-24-generic-pae" arch: "i386" Family: "unix"

A partir de ce moment, vous avez un système maven opérationnel.

Je vous propose d'aller un tout petit peu plus loin avec les repository de façon à vous faire gagner beaucoup de temps.

 

Les Repository à connaître

L'idéal avec maven et d'utiliser un repository local type nexus/archiva qui va tenir lieu de miroir à tous les repository maven disséminés sur Internet.
Dans votre fichier settings.xml, vous aurez une configuration qui ressemble à cela :

 <mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>

Ici, l'url "repo.mycompany.com" est l'url du repository de votre compagnie.

Comme l'installation d'un mirroir n'est pas toujours possible, ni même souhaité, voici un autre moyen de rajouter artificiellement une liste de repository à vos projets.

L'idée est de créér un profile dans le fichier settings qui va lister l'ensemble des repository que vous souhaiter avoir par défaut dans vos projets. Ennsuite vous aurez le choix de l'activer par défaut ou à la demande.

      <profiles>
<profile>
<id>my-repository</id>
<activation>
<!-- here we did not activate this profile by default -->
<activeByDefault>false</activeByDefault>
</activation>
<repositories>
<!-- list of standard repository -->
...
</repositories>
</profile>
</profiles>

 

Pour lancer un commande maven utilisant cette liste de repository, vous devrez rajouter "-Pmy-repository" comme parametre (car le profil n'est pas activé par défaut):

mvn -Pmy-repository clean install

Maintenant, voici une petite liste de repository bien utile:

<repository>
<id>javanet</id>
<name>Repository for Maven2</name>
<url>http://download.java.net/maven/2</url>
</repository>
<repository>
<id>google</id>
<name>Google repository for Maven2</name>
<url>https://oss.sonatype.org/content/repositories/google-releases/</url>
</repository>
<repository>
<id>jboss</id>
<name>JBoss repository for Maven2</name>
<url>http://repository.jboss.org/maven2/</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
</repository>
<repository>
<id>com.springsource.repository.libraries.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Library Releases</name>
<url>http://repository.springsource.com/maven/libraries/release</url>
</repository>
<repository>
<id>com.springsource.repository.libraries.external</id>
<name>SpringSource Enterprise Bundle Repository - External Library Releases</name>
<url>http://repository.springsource.com/maven/libraries/external</url>
</repository>
<repository>
<id>intelligents-ia</id>
<name>Intelligents-ia Repository</name>
<url>http://intelligents-ia.com/maven2</url>
</repository>

 

Vous pourrez trouver en pièce jointe à ce billet, le fichier settings.xml déjà configuré

 

Si vous connaissez d'autre repository qu'il serait intéressant de rajouter, n'hésitez pas à me contacter :-)

 

 

Par Jérôme Guibert, dans Technique
un commentaire

Envoyer à un ami 

une annexe

un commentaire

Geronimo

Geronimo

Le mercredi 15 février 2012, 17:40

Quelques mise à jour pour les plateformes windows...

Ajouter un commentaire

Identité

S'abonner pour recevoir les commentaires suivants par email

Texte

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

:) :(( :p X-( :x :-/ 0:) B-) &gt;-)