Primeros pasos con Maven

En estos días estoy repoblando de software mi notebook. Una de las aplicaciones que he instalado, para comenzar a usar con más frecuencia, es el Maven de la gente de la Apache Foundation. Durante años, muchos proyectos de código abierto basan su armado y empaquetado en un utilitario como el Ant. Pero más y más proyectos están pasando a basarse en este otro utilitario Maven. Así que aprovecho que mi nueva notebook está limpia de anteriores versiones, para probar este utilitario.

Pueden visitar el sitio del proyecto (código abierto, en Java):

http://maven.apache.org/index.html

Ahí leemos

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

If you think that Maven could help your project, you can find out more information about in the “About Maven” section of the navigation. This includes an in-depth description of what Maven is, a list of some of its main features, and a set of frequently asked questions about what Maven is.

 

No nos revela mucho esa descripción, pero les cuento algo: Maven es un Ant con esteroides. Basado en la descripción de un proyecto con el Project Object Model, puede armar la estructura de ese proyecto, para que podamos después completarlo en programación, bajarse las librerías que necesitemos (p.ej. Hibernate, Spring..), y hasta armar un sitio del proyecto, como los que tienen los proyectos de la fundación Apache (de hecho, fue así como nació Maven, como un automatizador de la creación de nuevos proyectos a incubar en la fundación Apache).

Yo me bajé la última versión, según su página de downloads:

http://maven.apache.org/download.html

En mi caso la versión binaria apache-maven-2.1.0-bin.zip.

Estoy trabajando en un Windows Vista, así que expandí ese .zip en el directorio c:\Program Files\apache-maven-2.1.0 y armé dos variables de ambiente, M2 y M2_HOME como pide la documentación del producto, además de asegurarme que existe la variable JAVA_HOME :

 

Agregué el valor de M2 (el directorio de los binarios de Maven) a la lista de directorios contenida en mi variable de ambiente PATH.

Una vez que hice eso, pude ejecutar una prueba desde la consola, que muestre la versión de Maven que estoy usando. Vean que el comando a invocar es mvn:

 

Estoy siguiendo los pasos del

Maven in 5 minutes

Para probar de crear un proyecto mínimo, un típico Hello World. En un directorio Dev, ejecuté el comando:

 

El maven comienza a armar la carpeta del proyecto, y a bajar cualquier dependencia que decida que necesite. Vean que van a tener que estar conectados a Internet la primera vez que lo ejecuten, porque lo más probable es que Maven vaya bajando software adicional que necesita. El repositorio de Maven se va creando en un directorio .m2 dentro del directorio home del usuario. En mi caso

 

Durante el proceso, va mostrando el avance de la creación del proyecto:

 

El resultado, es una carpeta como:

 

En el directorio inicial se encuentra el archivo pom.xml que describe al proyecto:

   1: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   2:   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

   3:   <modelVersion>4.0.0</modelVersion>

   4:   <groupId>com.ajlopez.app</groupId>

   5:   <artifactId>my-app</artifactId>

   6:   <packaging>jar</packaging>

   7:   <version>1.0-SNAPSHOT</version>

   8:   <name>my-app</name>

   9:   <url>http://maven.apache.org</url>

  10:   <dependencies>

  11:     <dependency>

  12:       <groupId>junit</groupId>

  13:       <artifactId>junit</artifactId>

  14:       <version>3.8.1</version>

  15:       <scope>test</scope>

  16:     </dependency>

  17:   </dependencies>

  18: </project>


El próximo paso, es, desde el directorio del proyecto, invocar al Maven nuevamente, con otra instrucción, de empaquetar (compilar y armar un .jar con nuestra aplicación):


 


Ahora podemos ejecutar nuestro programa empaquetado, con el comando


 


Un comando más interesante, es el que genera el sitio del proyecto:


 


Dentro del directorio target\site deja un sitio con la descripción del proyecto, que podemos ver en nuestro navegador:


 


Espero que sirva como descripción de los primeros pasos para probar Maven, aunque todavía no queda claro toda la potencia que tiene el producto. Tengo que describir más en detalle lo que es el Project Object Model, las dependencias, el ciclo de vida de un proyecto, los distintos “verbos” que tenemos, además de package o test.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez

This entry was posted in 1390, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>