viernes, 31 de agosto de 2012

Cómo instalar maven en OS-x y el plugin maven de Eclipse

Con la actualización a la versión Lion de OSx y la instalación de Java desde la versión 1.6, maven viene instalado "de serie" para los Mac.

La versión que se instala es la v3.0.3, al menos para OSx 10.6.7 en adelante.
La ruta donde se puede encontrar la instalación de maven por defecto es /usr/share/maven
Podemos comprobar si en nuestro equipo está instalada o no y correctamente configurado, ejecutando desde el terminal:
 
$ mvn -version
 

Si necesitas tener instalada una versión diferente, como en mi caso donde necesitaba la versión de maven 2.2.1, debido a proyectos que no se han migrado todavía, lo que debes hacer es seguir estos sencillos pasos:

Paso 1. Descargar y descomprimir

Descarga la versión que necesites de maven desde la web de descargas de maven (http://maven.apache.org/download.html)

Cuando tengas la versión de maven que necesitas descargada, descomprímela.  En mi caso por ejemplo la he descomprimido en /Users/joseluisgv/Downloads, donde ahora tengo una carpeta "apache-maven-2.2.1"

Lo que vamos a hacer es tener en /usr/share tantas versiones de maven como necesitemos, e ir cambiando el /usr/share/maven para que use la que necesitemos de forma puntual en cada momento.
Así que vamos a hacer una copia del contenido actual de la carpeta original de maven con el nombre apache-maven-3.0.3, o la versión que tú tengas instalada si es que tienes alguna.  Si no tienes ninguna versión instalada, pasa al paso 3.

Paso 2. Guardar la versión actual.

Accedemos a /usr/share/ desde una ventana del Terminal y nos situamos:
 
$ cd /usr/share


Copiamos, con sudo (necesitamos permisos elevados para trabajar en el directorio share) el contenido a una carpeta superior:
 
$ sudo cp maven /usr/share/apache-maven-3.0.0
 

Paso 3. Movemos la versión descargada a la carpeta de recursos compartidos del sistema

Accedemos a la carpeta donde nos hemos descargado y descomprimido, en el paso 1, la versión que necesitamos de maven, en mi caso:sudo mv apache-maven-2.2.1 /usr/share
 
$ cd /Users/joseluisgv/Downloads/ 
 

Movemos, con sudo, la carpeta descomprimida de maven a la carpeta share:
 
$ sudo mv apache-maven-2.2.1 /usr/share


En este punto, debemos tener varias carpetas con varias versiones de maven dentro de la carpete /usr/share, así que ahora indicaremos cuál de ellas queremos usar.

Paso 4. Cambiamos la versión de maven usada por el sistema

Si no hacemos este cambio, y pasamos directamente al paso 5, es muy probable que nos de el siguiente error al ejecutar cualquier comando de maven:
 
$ mvn -version
Exception in thread "main" java.lang.NoClassDefFoundError:
 org/codehaus/plexus/classworlds/launcher/Launcher

 

Así que creamos (cambiamos, en realidad) el link para que la carpeta maven apunte al contenido de la carpeta con la versión que queremos usar:

 
$ sudo ln -s /usr/share/apache-maven-2.2.1/ maven

 


Y comprobamos que la versión es la correcta:

 
$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_33
Java home: 
  /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: es_ES, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.8" arch: "x86_64" Family: "mac"

 

También podemos cerciorarnos que maven se está ejecutando desde donde queremos, con:
 
$ which mvn
/usr/bin/mvn

$ ls -la /usr/bin/mvn
lrwxr-xr-x  1 root  wheel  24 19 jun 08:19 /usr/bin/mvn ->
   /usr/share/maven/bin/mvn 
$ ls -la /usr/share/maven 
lrwxr-xr-x  1 root  wheel  30 30 ago 10:50 /usr/share/maven ->
   /usr/share/apache-maven-2.2.1/

 


Como vemos, el binario ejecutable mvn se ejecuta desde /usr/bin/mvn, que en realidad es un link a /usr/share/maven/bin/mvn, y la carpeta /usr/share/maven es un link a la que nosotros hemos creado /usr/share/apache-maven-2.2.1
Todo perfecto hasta el momento.


Paso 5. Configurar las variables de sistema.

El plugin de maven para Eclipse utiliza una serie de variables para situar su binario y ficheros de configuración.  Si estas variables no están creadas y/o no tienen los datos correctos, el plugin de maven en Eclipse no funcionará correctamente.

Creamos un con el siguiente contenido:
 
export M2_HOME=/usr/share/maven
export M2=$M2_HOME/bin
export JAVA_HOME=/Library/Java/Home/
export PATH=$PATH:$M2

 

Y lo guardaremos como "~/.bash_profile", para que el sistema cargue las variables en el arranque y ante cualquier cambio.

Podemos comprobar desde otra ventana del Terminal que tenemos las variables correctamente configuradas:
 
$ echo $JAVA_HOME
/Library/Java/Home/

 


Paso 6. Instalar el plugin de maven en Eclipse.

Esta es fácil y una tarea, digamos, "straight-through":

En Eclipse, vamos a la ventana de instalar nuevo software (menú Help->Install new software o Ayuda->Instalar nuevo software), y añadimos un nuevo sitio de búsqueda de componentes, con la siguiente URL: http://download.eclipse.org/technology/m2e/releases 

Yo personalmente he llamado al nuevo sitio de descarga "M2 Eclipse Plugin site", así tengo claro qué hay en ese sitio.


 

Una vez añadido el sitio, lo seleccionamos para que Eclipse busque software nuevo desde él, y del software disponible, marcamos "m2e - Maven Integration for Eclipse".
El resto del proceso es "siguiente...  siguiente...".



Y listo.
Ya tenemos maven en el Mac con el plugin de maven instalado en Eclipse.