La Gestión de Dependencias y Maven

Publicado el 13 octubre 2015 por Instintobinario

En este artículo voy a hablar de un tema importantísimo cuando desarrollamos proyectos de cierta envergadura. Se trata de la gestión de dependencias.

¿Qué es la gestión de dependencias?

Cuando realizamos un proyecto pequeño (como puede ser un trabajo para clase) lo que hacemos es descargarnos los JAR que necesitamos y los añadimos a mano al path. Mediante la gestión de dependencias ya no tendremos que hacerlo a mano. Gestionaremos las dependencias gracias a un programa externo, que en este caso será el software de gestión de dependencias por excelencia, Maven.

Maven

Maven es un software de gestión de proyectos. Se basa en un fichero llamado pom.xml donde se define todo lo que necesita el proyecto. Maven se encarga de descargar las dependencias necesarias, compilar, empaquetar y ejecutar los test del proyecto. Maven trabaja con grupos y artefactos. Un artefacto es un componente software que podemos incluir en nuestro proyecto como una dependencia. Normalmente será un JAR. Un grupo es un conjunto de artefactos. Un ejemplo sería el grupo del framework Spring.

<dependency>
  <groupid>org.springframework</groupid>
  <artifactid>spring-orm</artifactid>
  <version>3.0.5.RELEASE</version>
  <scope>runtime</scope>
</dependency>

Instalar maven

Lo primero será descargar Maven desde su página de descargas. Si estáis en Windows y queréis usar Maven desde la consola tendréis que crearos la variable de entorno M2_HOME apuntando a la ruta en al que habéis descomprimido Maven y añadirla al path del sistema. Otra opción, si no os gusta la consola es utilizar el plugin para eclipse m2eclipse que podéis descargar desde el market place.

Arquetipos y creando un proyecto

Los arquetipos son plantillas. Cuando creamos un proyecto tenemos que especificar un arquetipo. Éste define la estructura del proyecto, el contenido del pom.xml y la estructura de carpetas. Ahora veremos un ejemplo de creación de un proyecto Vaadin (framework para creación de interfaces de usuario para webs) utilizando Maven. Lo primero será crear el proyecto Maven mediante el siguiente comando: 

mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application-DarchetypeVersion=7.5.3-DgroupId=your.company-DartifactId=project-name -Dversion=1.0 -Dpackaging=war

Los parámetros son:

  • archetypeGroupId: El id del grupo es com.vaadin para arquetipos de Vaadin.
  • archetypeArtifactId: este es el id del arquetipo.
  • archetypeVersion: La versión del arquetipo. Aquí pondremos la version de Vaadin que queremos utilizar.
  • groupId: El id del grupo de Maven. Normalmente será el dominio de tu empresa o el típico com.example.
  • artifactId: El id del artefacto que es tu proyecto. Si aqui ponemos por ejemplo miProyecto y en groupId hemos puesto com.example, el código de nuestro proyecto estará en com.example.miProyecto
  • version: La versión inicial de tu aplicación
  • packaging: Cómo se empaquetara el proyecto. En este ejemplo al ser una web será un WAR.

Con ese comando ya tendríamos creado el proyecto. Como Vaadin es un framework si no usaramos Maven tendríamos que descargarnos el JAR y añadirlo al proyecto. Sin embargo al usar Maven ya no tenemos que hacer nada más. Finalmente comentaré un par de comando más de Maven:

  • mvn package: Este comando nos permite empaquetar el proyecto (JAR, WAR) para desplegarlo donde queramos.
  • mvn clean install: Este comando nos permite instalar la aplicación en un repositorio o un servidor.

Esto ha sido todo. Espero que os haya sido útil y os ayude a comprender un poco mejor como funciona Maven y la gestión de dependencias.

El artículo La Gestión de Dependencias y Maven apareció por primera vez en Instinto Binario.