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:
- Completa integración con eclipse (M2Eclipse).
- Buena documentación: Maven the Definitive Guide y m2eclipse Documentation.
- Integrará nuestros proyectos de forma fácil con otras herramientas XP como son las de Integración Contínua, TDD, Análisis de código,…
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:
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.
Estoy empezando un proyecto con eclipse y maven. tu información me ha sido de mucha ayuda.
Gracias.