Installer Apache Maven sur Leopard

Installer Apache Maven sur Mac OS X Leopard est assez simple en soi, mais comme je vois que cette question est souvent posée je me permet d’y répondre.

A noter : Cet article s’applique aussi à sous Snow Leopard (Mac OS 10.6)

Trop simple

En fait pour installer Apache Maven sur Leopard, il y a tout simplement rien à faire par défaut 😉 .

En effet ce dernier est inclu dans les outils fournis de base avec l’OS.

arnaud@ahe:~$ mvn -version
Maven version: 2.0.6
arnaud@ahe:~$ which mvn
/usr/bin/mvn

Et voilà !!!

D’accord, cet article c’est du vol. 🙂

Allons un peu plus loin alors …

Remplacer la version de Maven embarquée

La version 2.0.6, c’est bien, merci Apple, mais elle commence à dater. Alors comment fait-on pour installer et utiliser une version plus récente.

Il suffit de télécharger la version et la placer dans /usr/share (C’est là qu’Apple a placé sa version 2.0.6 dans le sous-répertoire maven).
Pour placer un répertoire dans cet espace système il faut être administrateur. Le plus simple est donc de décompresser la version de Maven et de la déplacer depuis un terminal shell avec la commande :
arnaud@ahe:~$ sudo mv apache-maven-2.0.10 /usr/share
Pour terminer il faut recréer le lien symbolique qui se trouve dans /usr/bin/.
arnaud@ahe:~$ sudo ln -fhsv /usr/share/apache-maven-2.0.10/bin/mvn /usr/bin/mvn

Est ce plus intéressant ?

Allons jusqu’au bout et ajoutons maintenant la possibilité de passer d’une version de maven à une autre. Pour moi, en tant que développeur Maven, c’est très utile pour faire des tests de compatibilité pour les plugins. Pour vous, cela a son intérêt pendant les périodes d’upgrade afin de facilement tester une nouvelle version de maven sur un projet (et la sortie de la version 2.0.10 est toute proche 🙂 ).

Pouvoir passer d’une version de Maven à une autre

Nous allons reprendre le principe d’un script shell déjà utilisé pour changer la version de Java. Nous téléchargeons les différentes versions de Maven que nous souhaitons utiliser dans ~/Applications (contrairement à /usr/share/ ce répertoire ne sera pas impacté lors d’une mise à jour de l’OS). Nous créons un script setMaven.sh (cf. ci-dessous) que vous placez dans un répertoire qui se trouve dans votre PATH (personnellement ~/Scripts)
#!/bin/sh
MVN_VERSIONS_DIRECTORY="~/Applications/"
MVN_DIRECTORY_TEMPLATE="apache-maven-"
cd ${MVN_VERSIONS_DIRECTORY}
echo "Current `mvn -v`"
if [ "$1" == "" ]; then
versions=`ls -1 ${MVN_VERSIONS_DIRECTORY} | grep 'maven-[2-9].[0-9]' | sed 's/^.*maven-//g'`
echo "Available Versions:" $versions
exit
fi
VERFOUND=`ls | grep $1 | head -n 1`
if [ "$VERFOUND" != "${MVN_DIRECTORY_TEMPLATE}$1" ]; then
BASE="`basename $0`"
echo Error: Could not change Maven -- version $1 not installed!
echo Run $BASE without arguments to see a list of installed versions.
exit 127
fi
# If we get here the user asked for a valid version, so configure it
echo You must now enter your Mac OS X password to change the Maven.
sudo ln -fhsv ${MVN_VERSIONS_DIRECTORY}${MVN_DIRECTORY_TEMPLATE}$1/bin/mvn /usr/bin/mvn
echo "New `mvn -v`"
# To activate if you have growl and growlnotify script installed
#growlnotify -n Maven -m "Maven now in $1"

Sans paramètre l’appel au script vous liste les différentes versions disponibles et la version actuellement configurée.

arnaud@ahe:~$ setMaven.sh
Current Maven version: 2.0.1
Available Versions: 2.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0-M1 3.0-alpha-2

Pour modifier la version vous la passez en paramètre du script.

arnaud@ahe:~$ setMaven.sh 2.0.10
Current Maven version: 2.0.1
You must now enter your Mac OS X password to change Maven.
/usr/bin/mvn -> /home/arnaud/Applications/apache-maven-2.0.10/bin/mvn
New Maven version: 2.0.10
Java version: 1.5.0_16
OS name: "mac os x" version: "10.5.6" arch: "i386" Family: "unix"

Mission réussie ! A noter que ce script, comme pour la version Java, est persistant.

7 thoughts on “Installer Apache Maven sur Leopard”

  1. Effectivement j’ai oublié de mentionner cette solution relativement simple pour l’utilisateur. Je ne sais par contre pas quel délai il y a entre les publications officielles des produits et les macports ?

  2. Merci pour cet article, je ne savais pas qu’il y avait Maven nativement dans OS X 🙂

Comments are closed.