Maven: Herramienta de Gestión de Proyectos (en Eclipse)

Siguiendo con nuestro objetivo de crear un entorno de desarrollo de software Extremo, hoy añadimos esta herramienta a la caja.

Maven es una herramienta de gestión de proyectos de software con las siguientes características:

  • Convención sobre configuración:provee de una serie de standards estructurales en los proyectos con el fin de homogeneizar la construcción de los mismos y ahorrar los quebraderos de cabeza de algunos sistemas de configuración.
    • ${basedir}/src/main/java: para tu código
    • ${basedir}/src/main/resources: para los ficheros de configuración
    • ${basedir}/src/main/webapp: fiecheros web, css, html, jsp …
    • ${basedir}/src/test: Clase de pruebas
    • ${basedir}/target/classes: para las clases java compiladas
    • ${basedir}/target: los paquetes, jar, war, ear….
    • ….
  • Maneja todos los hitos del ciclo de vida de  un proyecto de software:
    • Ciclo de vida muy simple: Compilado –> Test –> Empaquetado
    • En cada hito del ciclo de vida se pueden ejecutar goals (objetivis). Por ejemplo en el empaquetado: mvn jar:jar
  • Controla las dependencias con otros proyectos: esta es la característica que me ha enganchado:
    • Olvídate de descargar los jars de spring, hibernate, configurarlas en el Java Buil Path,….. un rollo. Solución: marcas tus dependencias en el pom.xml, y el solito te las descarga y coloca en el Build path.
    • Los Arquetipoooos ¡¡¡¡ Son esqueletos de aplicación con pom.xml preconfigurados para hacer proyectos grails, seam, roo,… Échale un ojo a Appfuse y a los arquetipos cuando vayas a crear un nuevo proyecto maven en tu eclipse.
  • Ofrece un ecosistema de plugins para ejecutar todos los objetivos en las fases de cualquier proyecto.

Además en mi caso cumple unas características fundamentales:

Para instalarlo:

  • Descargar Maven y copiarlo en un directorio en vuestro sistema: c:\dev\frameworks\maven2
  • Definir ese directorio en el PATH como M2_HOME. Podéis probar con el comando: mvn -v
  • Para instalarlo en Eclipse Help > Install New Software > Add http://m2eclipse.sonatype.org/update/

Para abrir un poco boca haremos un pequeño ejemplo en nuestro eclipse. Para ello crearemos un nuevo proyecto File > New > Other … > Maven > Maven Project. Marcamos “Create a simple project” para no seleccionar arquetipos. Maven te obliga a rellenar el Group Id, Artifact ID.

Podemos generar la siguiente clase de ejemplo:

package com.lebrijo.ejemploMaven;
public class Hello {
 
     public static void main( String[] args )    {
        System.out.println( "Hello World!" );
    }
 
}

el comando “mvn install” nos generaría el jar que luego ejecutaríamos con “java -cp target/simple-1.0-SNAPSHOT.jar com.lebrijo.ejemploMaven.Hello”. Pero en eclipse basta con ejecutar como Java Application.

Para añadir una dependencia, botón derecho sobre el proyecto Maven > Add dependencies:
Searching dependencies with m2Eclipse
Podríamos utilizar la inyección de dependencias de Spring haciendo la búsqueda, incluso seleccionar la versión. Después de esto actualizamos las librerías con botón derecho sobre el proyecto > Maven > Update Dependencies.

Esta acción genera el siguiente trozo al pom.xml:

  	<dependency>
  		<groupid>org.springframework</groupid>
  		<artifactid>spring-context</artifactid>
  		<version>3.0.0.RELEASE</version>
  	</dependency>

Dejo el proyecto de eclipse en el siguiente link: Ejemplo de Maven2 básico.

One thought on “Maven: Herramienta de Gestión de Proyectos (en Eclipse)

Leave a Reply

Your email address will not be published. Required fields are marked *