Maven es una herramienta para automatizar la construcción de proyectos Java.
Instalación
Es necesario tener instalado el JDK de Java en el sistema.
Vamos a https://maven.apache.org/download.cgi y nos descargamos la última versión. Extraemos el archivo en una ruta donde tengamos permisos de escritura.
Añadimos la ruta al directorio bin (dentro del directorio donde hemos extraído Maven) a la variable PATH del sistema. Esto varía según el sistema operativo. Para Windows 10, tenemos que ir a “Panel de Control / Sistema / Configuración avanzada del sistema / Variables de entorno / Variables de sistema” , y ahí añadir la ruta a la carpeta bin bajo el nombre de variable PATH.
Configuración
Maven se configura editando el fichero settings.xml, en la carpeta conf. Este fichero contiene, mediante comentario, instrucciones sobre diferentes opciones de configuración posibles.
Por ejemplo, para configurar un repositorio local donde se descargarán las dependencias (en el caso de que hagamos uso de esta cartacterístia de Maven) hay que editar la sección “localRepository”. Descomentamos y editamos con la ruta que consideremos la siguiente línea:
/path/to/local/repo
Creación de un proyecto Maven
Para comenzar a usar Maven primero necesitamos crear la estructura base (que contendrá las carpetas src/java y src/test, además del fichero descriptor pom.xml). Creamos un directorio para nuestro nuevo proyecto y accedemos al mismo. Dentro, lanzamos comando archetype:generate, personalizando los parámetros “com.mycompany.app” y “my-app”:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Esto nos creará una estructura básica a partir de la cual podemos empezar a trabajar.
El descriptor del proyecto (POM)
Los proyectos Java de tipo Maven tienen un fichero pom.xml, llamado “descriptor del proyecto”, que define las operaciones a realizar cuando Maven se ejecute, además de las dependencias y otras características que definamos.
Fases del ciclo de vida
Para entender bien las diferentes posibles ejecuciones de Maven vamos a ver las fases del ciclo de vida. Son un conjunto de bloques de operaciones para la construcción del proyecto.
Las fases del ciclo de vida por defecto (hay otras) son las siguientes:
- validate: valida que el proyecto sea correcto.
- compile: compila el código fuente, generando los .class.
- test: lanza los tests disponibles.
- package: empaqueta el proyecto en un .jar, .war o .ear, según su naturaleza.
- verify: lanza pruebas sobre los tests de integración.
- install: copia el empaquetado en el repositorio local.
- deploy: copia el empaquetado en el repositorio remoto.
Compilar un proyecto
Por ejemplo, para compilar un proyecto que hayamos creado, nos situamos en la raíz del proyecto y lanzamos:
mvn compile
Veremos que en la carpeta target se encuentran todas las clases .class compiladas.
Empaquetar un proyecto
Y para empaquetarlo, situándonos en la raíz del proyecto, lanzamos:
mvn package
Veremos que en la carpeta target se encuentra el fichero final del empaquetado.
Uso para inclusión de dependencias
Un uso muy interesante de Maven consiste automatizar la descarga de dependencias (en lugar de conseguirlas manualmente y colocarlas dentro de nuestro proyecto). Esto se consigue editando el fichero pom.xml.
Para eso, lo más cómodo es acceder a la dirección https://mvnrepository.com/ y buscar la dependencia que necesitemos. Copiamos el código asociado a dicha dependencia y lo copiamos en la sección de nuestro pom.xml
De este modo la dependencia se descargará automáticamente a nuestro repositorio local y será referenciada por nuestro proyecto para su futuro uso.
So, what do you think ?