Cargando



Maven – Usando Maven por primera vez

Este tutorial continúa con los detalles clave de la herramienta Maven para la gestión de proyectos desde la línea de comandos en Windows.


jul 08 2014 22:05
Avanzado
jul 16 2014 00:23
En el tutorial anterior vimos cómo instalar Maven en tu computadora, creamos nuestro primer proyecto (aunque esencialmente consistiera en presionar Enter como 10 veces) y te dejé para que revisaras ese primer proyecto que Maven creó automáticamente, particularmente el archivo “pom.xml” el cual es prácticamente el corazón de tu proyecto en Maven.

En este tutorial veremos qué hace Maven, qué son todas esas etiquetas contenidas en el archivo POM, qué significan y cómo empezar a sacarle provecho a esta herramienta.

Nuestro primer proyecto


Vamos a repasar los pasos para crear nuestro primer proyecto con más detalle, para ello ya debes haber instalado Java y Maven, cosa que puedes repasar en mi anterior Tutorial.

Primero abrimos nuestra línea de comandos y corremos el comando “mvn –version” (mvn –v) para verificar que Maven está instalado. Una vez comprobado, nos dirigimos a la carpeta donde queremos crear nuestro proyecto con el comando cd (en mi caso “cd mavenArchetypes”) y escribimos el comando “mvn archetype:generate” para que nos presente la lista de arquetipos que se encuentran en el repositorio Maven (Son una enorme cantidad de arquetipos).

maven.jpg

Comandos iniciales


Primeras 2 páginas de la lista de arquetipos existentes al 08/07/2014


Al final de la lista de arquetipos Maven pide que escojas un número que corresponda a una de las opciones de la lista (lo cual sería imposible sin saberse los números de memoria) y te da un número por defecto (en mi caso 438) el cual corresponde al arquetipo “maven-archetype-quickstart” o apliques un filtro lo cual se traduce en colocar una palabra que te permita filtrar esa lista gigante a una más manejable que tenga relación a lo que buscas. Suponiendo que pusieras la palabra “spring” te va a presentar la lista de todos los arquetipos basados en el framework Spring.

Vamos a quedarnos con el arquetipo por defecto así que simplemente presiona Enter tras lo cual te va a presentar una lista de versiones del arquetipo seleccionado donde escogemos la última versión presionando Enter otra vez.

Finalmente te va a pedir los datos que van a identificar tu proyecto que son:

groupId
Representa tu “propio repositorio de proyectos”, todos los proyectos que generes con el mismo groupId se conservarán juntos, en este ejemplo particular mi recomendación es que coloques el nombre del paquete base de tu proyecto, en el mío es “org.manuel.maven”.


artifactId
Es el identificador de tu proyecto, como este es un proyecto de prueba yo le llamé “MavenTestApp”.


version
Auto-explicativo, el número de la versión del proyecto, por defecto Maven sugiere ”1.0-SNAPSHOT” lo cual representa la primera versión de desarrollo de un proyecto.


package
Es el paquete principal de tu proyecto, por defecto Maven le da el nombre del “GroupId” que en este caso es “org.manuel.maven”.


Al final te va a mostrar un resumen y requerir tu confirmación (simplemente debes presionar Enter una vez más o escribir “N” para que te pida los datos de nuevo) y ¡listo! Ya tienes tu primer proyecto Maven.

¿Qué tengo ahora?


Ahora tenemos una carpeta llamada MavenTestApp donde está una carpeta src en la cual hay un archivo “pom.xml”, una carpeta “main” y una carpeta “test”. En la carpeta “main” ubicaremos todos los archivos fuentes de nuestra aplicación, en la carpeta “test” se colocarán los archivos de prueba correspondientes (estas pruebas se realizan con una librería llamada JUnit la cual veremos en otro tutorial más adelante) y el archivo POM contiene los atributos claves de nuestro proyecto y, al abrirlo con un editor de texto (yo uso Notepad++), se debe ver algo así:



Veamos el documento por partes:
  • Las primeras 2 líneas declaran el XML Namespace y el schema que se relacionan con XML.
  • La etiqueta “modelVersion” señala a qué versión de descriptor de proyecto pertenece este POM.
  • “groupId”, “artifactId” y “version” corresponden al proyecto en particular y ya los expliqué más arriba.
  • La etiqueta “packaging” le informa a Maven cómo debe empaquetar nuestro proyecto una vez construido. En este caso es un .jar, si fuese una aplicación empresarial podría ser un .ear, si fuese una aplicación web sería un .war.
  • Finalmente la etiqueta “dependencies” señala el inicio de la lista de dependencias del proyecto, dentro de esta etiqueta cada dependencia se coloca entre las etiquetas “dependency” y en ellas señalas el groupId, artifactId y la versión de la dependencia que le quieras agregar al proyecto. En este caso, por defecto viene incluido con las dependencias de la librería JUnit que es la que se encarga de realizar las pruebas a nuestro código.
Dentro de la dependencia también existe una etiqueta llamada “scope” o alcance que señala qué proceso debe estarse ejecutando para que se aplique la dependencia correspondiente. Este archivo POM es el corazón de nuestro proyecto y le podremos ir agregando dependencias a medida que nuestro proyecto crezca.

¿Cómo funciona Maven?


Maven se maneja empleando un “repositorio” de información al cual accede automáticamente cuando se está ejecutando y del cual obtiene 2 cosas esencialmente:

Información de Arquetipos
Maven contiene un repositorio donde mantiene múltiples modelos, llamados “arquetipos” de aplicación que son esqueletos compuestos de la estructura básica de un tipo de aplicación particular, en el caso del arquetipo de inicio rápido de Maven la estructura correspondiente es la que tenemos en este momento


Información de Dependencias
Esta es la otra pieza clave de Maven que es la relación de dependencia que existe entre una librería y otra. Por ejemplo, el framework “Spring” depende de la librería de Apache Commons Logging. Esta información está almacenada en el repositorio Maven de forma tal que tú al momento de querer usar Spring sólo tengas que declarar la dependencia Spring en tu archivo POM y Maven AUTOMÁTICAMENTE se encarga de descargar y utilizar correctamente la librería de Apache que requiere.


Por estas sencillas razones es que debes poseer una conexión a Internet al momento de usar Maven ya que necesita poder ir al repositorio externo a buscar aquellas dependencias que necesitas.

¿¡No te parece fantástico!? En lo personal más de una vez descargaba una librería para darme cuenta que necesitaba otra librería adicional para que la primera no fallara. Con Maven sólo necesito señalar la librería que quiero usar en el archivo POM y ¡LISTO! Maven se encarga de descargar todo lo que necesito.

Si todavía no te he convencido de dejar de construir código de la forma en la que lo haces actualmente y empezar a usar Maven espera a que lleguemos a usarlo en Eclipse, a crear aplicaciones Web con pocos click y a mezclar Spring y Hibernate en una misma aplicación, espero me sigan leyendo en el próximo tutorial y no olviden dejar sus comentarios, ¡hasta la próxima!

¿Te ayudó este Tutorial?


1 Comentarios

Este tutorial es de 10, gracias por compartirlo Crack!
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X