miércoles, 28 de noviembre de 2007

Maven en Linux

Hola, para los que conocemos ant, no nos costara comprender lo que es maven, ya que maven es la evolución de ant. mejora enormemente la automatización de proyectos Java.

Maven es una herramienta para la gestión y automatización de proyectos Java. Estaba integrado dentro del proyecto Jakarta pero ahora es un proyecto de nivel superior de la Apache Software Foundation.

En la versión 1, maven se basa en un fichero XML de configuración (project.xml) y una serie de plugins, esta herramienta puede compilar el proyecto Java, ejecutar los tests unitarios, generar paquetes (jars, wars, etc..) y generar una serie de reportes. La versión 2 usa también un fichero XML de configuración llamaddo pom.xml. Su funcionalidad es parecida a Apache Ant de manera que permite compilar, ejecutar test o realizar distribuciones pero con la diferencia que trata de forma automática las dependencias del proyecto. Una de las más importantes características es su actualización en línea mediante servidores con repositorios de librerias (jar's). Maven es capaz de descargar nuevas actualizaciones de las bibliotecas de las que depende el proyecto y de igual manera subir una nueva distribución a un repositorio de versiones, dejandola al acceso de todos los usuarios, de esta forma maven alimenta el desarrollo de proyectos Java y el Open source.

Maven se ejecuta de forma nativa por la consola de Unix-Linux (debian en mi caso), tambien tiene plugin de integracion con Eclipse y Netbeans en su version 5.5. Para trabajar con maven primero debemos dirigirnos a su download en la siguiente URL: http://maven.apache.org/index.html, actualemente esta disponible la version 2.0.8, sin embargo este articulo se basara en la instalación y trabajo con maven 1.0.2, he probado con la version 1.1 y 2.0.7 y no existe mayor diferencia, en maven 1.0.2 el comando es maven y en las posteriores es mvn.

Entonces, nos descargamos la version 1.0.2 de la siguiente url, que corresponde a los archivos de Maven:
http://archive.apache.org/dist/maven/binaries/ , una vez que tengamos el archivo maven-1.0.2.tar.gz en algún directorio donde lo dejamos, debemos copiar o mover el archivo al directorio /usr/local de nuestra maquina con el siguiente comando:

slackware:/home/slack/Software# cp maven-1.0.2.tar.gz /usr/local/

* cp para copiar y mv para mover

Nos posicionamos en este directorio y descompimimos el archivo con el siguiente comando por consola:

slackware:/usr/local# tar -xzvf maven-1.0.2.tar.gz

Se generara un directorio con el nombre maven-1.0.2, en /usr/local,

Hacemos un ls -l para ver lo que contiene el directorio:

slackware:/usr/local# ls -l
total 5972
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 bin
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 etc
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 games
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 include
drwxrwsr-x 4 root staff 4096 2007-09-30 21:54 lib
lrwxrwxrwx 1 root staff 9 2007-09-15 08:40 man -> share/man
drwxr-xr-x 5 slack slack 4096 2004-12-07 08:13 maven-1.0.2
-rw-r--r-- 1 slack slack 6060686 2007-11-28 11:57 maven-1.0.2.tar.gz
drwxr-xr-x 6 slack slack 4096 2007-10-18 15:29 maven-2.0.7
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 sbin
drwxrwsr-x 13 root staff 4096 2007-10-12 17:55 share
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 src

Ya confirmado la creación de nuestro directorio maven en usr/local, debemos agregar al path de los ejecutables el nuevo comando de maven, esto es para poder ejecutar maven desde cualquier directorio de linux, ya que en ocaciones debemos ejecutar el comando desde los directorio de nuestras aplicaciones.

Entonces ingresamos la siguiente linea de comandos:

slackware:/usr/local# export PATH=/usr/local/maven-1.0.2/bin:$PATH

OJO: si ejecutamos este comando como root, solo se podra ejecutar el comando maven como root, para ejecutar el comando como un usuario, debemos asegurarmos de los permisos, usuario y grupos del directorio
maven-1.0.2. En ubuntu podemos agregar este path editando el archivo profile, que esta en /etc/profile

supongamos que tenemos dos usuarios: slackware como root y slack, para correr maven como slackware(root) podemos hacerlo de la forma que explique arriba, si queremos ejecutar maven como slack (usuario) , debemos cambiar de usuario y grupo al directorio maven y setar el path, de la siguiente forma:

slackware:/usr/local# chown -R slack maven-1.0.2/
slackware:/usr/local# chgrp -R slack maven-1.0.2/
slackware:/usr/local# ls -la
total 48
drwxrwsr-x 12 root root 4096 2007-11-27 14:01 .
drwxr-xr-x 12 root root 4096 2007-09-20 17:57 ..
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 bin
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 etc
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 games
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 include
drwxrwsr-x 4 root staff 4096 2007-09-30 21:54 lib
lrwxrwxrwx 1 root staff 9 2007-09-15 08:40 man -> share/man
drwxr-xr-x 5 slack slack 4096 2004-12-07 08:13 maven-1.0.2
drwxr-xr-x 6 slack slack 4096 2007-10-18 15:29 maven-2.0.7
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 sbin
drwxrwsr-x 13 root staff 4096 2007-10-12 17:55 share
drwxrwsr-x 2 root staff 4096 2007-09-15 08:40 src
slackware:/usr/local# su slack
slack@slackware:/usr/local$ export PATH=/usr/local/maven-1.0.2/bin:$PATH

Si todo va ok, podriamos ejecutar un maven --version para asegurarmos que todo esta correcto, de la siguiente manera:

slack@slackware:/usr/local$ maven --version
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0.2

Y huala, ya tenemos maven instalado y configurado en nuestra maquina Linux (debian), ahora podremos ejecutar comandos maven para trabajar con proyectos Java. dejo algunos link de interes para conocer estos comandos.

http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Saludos y suerte !!

1 comentario:

menthor dijo...

hola, me calzo tu articulo de maven, muchas gracias