Destacada para JavaTal y como veremos en futuras entradas, Apache Maven es una herramienta fundamental a la hora de trabajar con las herramientas de la familia Red Hat JBoss Middleware. Así que hoy procedemos a instalar Maven en distribuciones GNU/Linux de tipo Red Hat, tales como Fedora, CentOS y RHEL.

¿No conoces Maven? Es una herramienta para la gestión y compilación de proyectos Java. Generalizando, podemos decir que se parece a PEAR de PHP o CPAN de Perl. Tiene características muy avanzadas, como un repositorio local de dependencias y plugins que por ejemplo permiten en un sólo paso compilar y desplegar el proyecto en un contenedor fabric8 que puede estar corriendo sobre Apache Karaf.

Comenzamos instalando las dependencias necesarias (Si usamos Fedora 23 instalamos con dnf, si usamos RHEL 7 o Centos 7 lo haremos con yum). Es válido para las versiones 7 y 8 de Java:

# yum install apr java-1.8.0-openjdk-devel unzip wget

La forma más flexible es instalarlo a través de los binarios oficiales de su sitio web. Los descargamos e instalamos en /opt, simplemente descomprimiendo. Tras descomprimirlo, creamos un enlace simbólico, para que en el momento que queramos actualizar la versión de Maven instalada, no tengamos que modificar las rutas en las variables de entorno que definiremos en el siguiente paso.

# wget http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar zxvf apache-maven-3.3.9-bin.tar.gz -C /opt
# ln -s /opt/apache-maven-3.3.9/ /opt/maven

Configuramos el perfil bash del usuario para integrar Maven, definiendo las variables de entorno a las que nos referíamos arriba, que son M3_HOME, M3 y PATH:

$ echo -e '\n# Apache Maven settings\nexport M3_HOME=/opt/maven\nexport M3=$M3_HOME/bin\nexport PATH=$M3:$PATH' >> ~/.bash_profile
$ echo -e '\n# Apache Maven settings\nexport M3_HOME=/opt/maven\nexport M3=$M3_HOME/bin\nexport PATH=$M3:$PATH' >> ~/.bash_profile

 

Reiniciamos la sesión del usuario en el sistema para que se tomen las nuevas variables de entorno. Si queremos probarlo al momento sin reiniciar la sesión, volvemos a cargar el fichero de perfil del usuario:

$ source ~/.bash_profile

Ejecutamos Maven por primera vez para que se genere su directorio de configuración:

$ mvn

Como lo lanzamos sin decirle lo que debe hacer, nos devolverá un error, esto es normal:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.089 s
[INFO] Finished at: 2016-07-15T17:11:23-05:00
[INFO] Final Memory: 5M/75M
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException

Podemos ver que ya se creó el directorio de configuración de Maven:

$ ls -la ~/.m2
total 16
drwxrwxr-x. 3 joseba joseba 4096 Jul 15 16:08 .
drwx--x---+ 67 joseba joseba 4096 Jul 15 16:08 ..
drwxrwxr-x. 2 joseba joseba 4096 Jul 15 16:08 repository

Sólo falta el fichero de configuración settings.xml que copiaremos del directorio de instalación de Maven:

$ cp /opt/maven/conf/settings.xml ~/.m2

Maven no nos obliga a ello, pero si consideramos necesario tener definida la variable de entorno JAVA_HOME, también lo haríamos en el fichero ~/.bash_profile.

Ya podemos comenzar a jugar con Maven tranquilamente, si queréis profundizar más y mejor en esta poderosa herramienta, podéis consultar los tutoriales que Erick Camacho publicó en Java Hispano. Son de gran utilidad y es posible que me base en ellos para redactar una nueva entrada. Iremos viendo 🙂

Instalar Maven en Fedora/Centos/RHEL
Etiquetado en:                            

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.