Maven - Qué es?

Antes de comenzar a ver cómo se usa esto de Maven vamos a tratar de explicar sintéticamente qué es y para qué sirve. También vamos a entender por qué creemos que es importante su uso, tanto durante la cátedra como en nuestra actividad profesional.

Maven es una herramienta que permite la gestión del ciclo de desarrollo de un proyecto. Está pensado para seguir un ciclo de vida dividido en una serie de fases. En cada una de las fases se realizan distintas operaciones sobre los fuentes y entregables.

Está pensado desde el punto de vista del desarrollador, por lo tanto no esperen gestión de documentos de diseño, pero sí manejo de tests, reportes y armado de paquetes ejecutables.

Es un producto que se encuentra desarrollado en Java y para Java, está pensado con una arquitectura orientada a plugins, de esta manera todas las operaciones se terminan delegando en distintos plugins. Esto facilita la expansión de la herramienta y su capacidad de adaptarse a distintos proyectos.

Un punto a favor es que se centra la definición del proyecto, y su correspondiente proceso de desarrollo, de forma declarativa; indicando qué es lo que se tiene que hacer y no cómo se tiene que hacer. Esto lo diferencia de productos como Ant donde debemos detallar el cómo de cada una de las operaciones. Esto lo realiza a través de un archivo que describe al proyecto (pom.xml: Project Object Model).

Algunos de los beneficios que podemos remarcar son:

  • Facilita el proceso de desarrollo

  • Provee una forma uniforme de desarrollo entre distintos usuarios y plataformas.

  • Provee mecanismos para generar información y reportes sobre la calidad del software generado.

  • Fomenta el uso de buenas prácticas de desarrollo.

  • Permite realizar TDD de forma simple e integrada con el proceso de desarrollo.

  • Se basa en “separation of concerns” o “separación de incumbencias”.

  • Pregona la “convention over configuration” o “convención por sobre configuración”.