Configuration de Maven
Ré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.
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 :-)
un commentaire Fil des commentaires de ce billet
Le mercredi 15 février 2012, 17:40
Quelques mise à jour pour les plateformes windows...