jueves, 8 de diciembre de 2011

Introducción a Maven

Maven es una herramienta que permite automatizar diferentes tareas relacionadas a la compilación y administración de un programa, una de sus principales características es la gestión de las dependencias y otra de sus características es la extensión de sus funcionalidades mediante plugins. Mediante el manejo automatizado de las dependencias nos ahorraremos mucho tiempo buscando los jar que necesita un producto X para funcionar y mas aun cuando alguna de esas dependencias también tiene dependencias, por otra parte la posibilidad de extensión que posee nos brindara un sin numero de posibilidades que nos ayudara en la gestión de nuestro proyecto.
En aplicaciones java las librerías se empaquetan en archivos de tipo JAR (Java Archive) , estos archivos java encapsulan funcionalidad que puede ser reutilizada en diferentes proyectos, un proyecto puede llegar a utilizar una gran cantidad de estos archivos JAR, ademas se debe considerar que existen diferentes versiones de estos JAR.
Maven mantiene en el equipo una biblioteca de archivos java reutilizables, organizados por grupos (groupId), por nombre (ArtifactId) y version, a esta biblioteca de archivos se le denomina repositorio.

El repositorio lo podrás encontrar por defecto dentro del directorio .m2 en el directorio home de tu cuenta.
Y no debemos olvidar que maven nos gestiona las dependencias de estas librerías  por lo que si deseas usar una librería como logback, por ejemplo, solo buscaras en un repositorio global y encontraras como incluir la dependencia en maven

<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-classic</artifactId>
 <version>1.0.9</version>
</dependency>

esta dependencia implica un árbol de librerías que se cargaran, ya que las dependencias son recursivas



por ejemplo para el caso de logback maven nos incluira dos dependecias

Esto implica que nuestro proyecto ademas de usar el jar clásico de logback , también incluirá una jar del core y otro de slf4j que es una capa de abstracción para loggers, ya que logback es una implementación de esta capa de abstracción.


Instalando Maven

Primero debes tener instalado el jdk de java.

Para instalar maven en tu equipo lo primero es descargarlo desde su pagina en http://maven.apache.org/download.cgi

Lo descompactas y lo dejas en alguna ruta que no tenga espacios ni caracteres poco comunes.

En Windows te vas a las propiedades del sistema (Panel de Control ->Sistema-> Configuración Avanzada del Sistema->Variables de Entorno) y creas las variables


  • M2_HOME : Con la ruta de instalación de maven por ejemplo H:\otros\apps\maven
  • M2 :  %M2_HOME%\bin (Ruta directa al bin)
  • M2_OPTS: -Xms256m -Xmx512m  (Para que pueda usar mas memoria)
Finalmente buscas la variable de sistema PATH y le agregas el M2 al principio


  • PATH=%M2%;Otra Ruta;Otra Ruta


Con esto ya puedes abrir una venta de comandos y ejecutar mvn --version para ver una serie de datos de tu instalación.

mvn --version

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 10:51:28-0300)

Maven home: H:\otros\apps\maven

Java version: 1.7.0_09, vendor: Oracle Corporation

Java home: C:\Program Files\Java\jdk1.7.0_09\jre

Default locale: es_CL, platform encoding: Cp1252

OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"