¿Qué es Maven?

Maven es una herramienta de Apache software fundation para la gestión de proyectos Java. Su filosofía es la estandarización y reutilización de la construcción del software.

Maven es perfecto en cuanto a la creación de un proyecto nuevo, pero un proyecto complejo ya existente puede ser difícil de adaptar. Aunque es configurable, siempre ha enfatizado que los usuarios deben adherirse a su concepto de modelo de proyecto tanto como sea posible.

En resumen, Maven te ayuda automatizando tareas repetitivas tales como el manejo de dependencias del proyecto, compila, empaqueta, ejecución de pruebas, entre muchas otras cosas, además de que te genera una estructura de proyecto estándar bien organizada y fácil de entender.

Ciclo de vida de Maven

Maven es capaz de gestionar un proyecto de software completo. Es importante entender el ciclo de vida o fases de ejecución de Maven para poder sacar el máximo provecho del mismo.

  • Complile:Genera los archivos .class del proyecto.
  • Test: Ejecuta las pruebas unitarias programadas previamente.
  • Package: Empaqueta el proyecto
  • Install: Instala el proyecto en el repositorio local de maven para poder usarla como dependencia en otros proyectos
  • Deploy:Despliega en el repositorio Maven remoto que se haya definido.

Cada vez que ejecutamos una etapa del ciclo de vida de Maven se ejecutarán las etapas previas que no se hayan ejecutado anteriormente. Por ejemplo: Si ejecutamos la etapa de instalación, ejecutaremos primero compile, test y package.

Instalación de Maven en Windows

La instalación de Maven es sencilla, previamente tenemos que tener configurada la variable de entorno de desarrollo de java. Después bastará con ir a la página oficial de descarga y comenzar la descarga, lo que obtendremos, de ahí será un archivo comprimido, este archivo lo podemos descomprimir donde nos agrade.

Lo siguiente que tenemos que hacer es apuntar la variable de entorno M2_HOME apuntando a la carpeta Maven que acabamos de descomprimir.

Pasos a seguir:

1. En el icono de “Equipo” dar clic derecho y clic en “Propiedades” después clic en “Configuración avanzada del sistema”.

Sistema Windows

2. Damos clic en Variables de entorno.

Propiedades de Sistema

3. Ahora sí procedemos a configurar nuestra variable M2_HOME. En la siguiente imagen podemos observar la ventana donde se configura esta variable, en ella se puede ver como la variable “JAVA_HOME” ya se encuentra configurada. También se observa el botón “Nueva” en la cual podemos dar clic y examinar la ubicación donde guardamos Maven después de descargarlo.

Variables de entorno

Configuración de un proyecto Maven

¿Qué es el POM?

El POM (Project Object Model) es un archivo en formato XML en el cual se configura toda la estructura del proyecto, en él se define el nombre del proyecto, las dependencias a otros proyectos o librerías externas(jars), los repositorios donde estos se encuentran, entre otras cosas. En realidad, aquí se realiza todo lo que tenga que ver con la configuración de nuestro proyecto.

Configuración mínima

La configuración mínima que debe de existir dentro del archivo POM.xml es la siguiente:

  • Moder version. Es la versión del POM a usar, debe ser dado el valor de 4.0.0.
  • Group Id. Es el identificador del grupo de proyectos al que pertenece nuestro nuevo proyecto.
  • Artifact Id. Es el nombre de nuestro proyecto
  • Version. Versión actual de nuestro proyecto.

Dependencias en Maven

Cuando trabajamos en un proyecto profesional es necesario apoyarnos del trabajo de otros para poder acelerar el nuestro. Una dependencia, librería o jar externo es un trabajo de un tercero que podemos agregar a nuestro proyecto, para añadir funcionalidad. Por ejemplo podemos añadir librerías/dependencias que nos facilitan la creación a base de datos o una librería que nos ayude con las pruebas de nuestro código, las funcionalidades de ellas son muy variadas, se pueden tener un gran número de librerías configuradas en un proyecto profesional. Maven nos ayuda a organizar y descargar esas dependencias a nuestro proyecto con tan solo una configuración sencilla en nuestro archivo POM.

Donde solo tenemos que agregar el groupId, el nombre de la librería y la versión.

Maven Dependency

Maven Repository

Pero ¿De dónde descarga Maven todos esos jars (dependencias)? Existe un compilado de librerías y las pone a disposición de todo mundo en la siguiente dirección web:

https://mvnrepository.com/

Dicho repositorio es tomado como principal dentro del POM y ya se encuentra previamente configurado, pero ¿Qué pasa si la dependencia que queremos no se encuentra en ese repositorio? Maven nos da la opción de agregar otros repositorios para poder descargar las librerías que hay en él, incluso si nosotros queremos tener un repositorio propio podemos hacerlo y descargar las librerías que en él tengamos en nuestro proyecto. La sintaxis para agregar un nuevo repositorio es la siguiente:

PrimeFaces Repository

Comandos Maven

A continuación te muestro una serie de comandos y su utilidad para Maven que son muy usados y qué varios de ellos te servirán para realizar los ejemplos que están al final de esta guía. 

Generar un proyecto Maven desde línea de comandos

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Adaptar nuestro proyecto Maven a eclipse y descargar las dependencias

mvn eclipse:eclipse -DdowloadSources=true

Limpia eclipse

mvn eclipse:clean

Compila el proyecto y deja los archivos .class dentro de la carpeta target

mvn compile

Ejecuta los test unitarios

mvn test

Empaqueta el proyecto y coloca el jar en la tarjeta target

mvn package

Guarda el proyecto generado en el repositorio

mvn install

Limpia la carpeta target y despues instala el proyecto en el repositorio

mvn clean install

Conclusiones

Maven es una herramienta indispensable que se ocupa en la gran mayoría de los lugares de trabajo en Java. Conocer la manera en que trabaja por detrás, su instalación y comandos más usados te ayudará en tu día a día como Software Developer.

0 Shares:
You May Also Like