Por qué Gradle sobre Maven

Sebastián Plawner
Ibisdev
Published in
3 min readMay 19, 2020

Tags: Gradle, Maven

En este artículo voy a redactar motivos por los cuales, personalmente y en base a mi experiencia y lectura decido elegir Gradle sobre Maven.

Pero primero, ¿qué son Gradle y Maven? Bien, en resumen, son automatizadores de tareas. Donde en nuestro caso, los usaremos para compilar proyectos en Java. Es por esta razón que explorando un pom.xml (Maven) o un build.gradle (Gradle) podemos encontrar plugins de Java con nombres como “build”. Esto nos da la pauta que corriendo comandos como “gradle build” podemos pasar nuestro código fuente a un código ejecutable compilado. Otra de las grandes ayudas que nos brindan estas herramientas es la integración con dependencias externas a nuestro proyecto. Es por eso que podemos encontrar bloques de código llamados “dependencies” donde estarán listadas las mismas.

Entonces, ¿por qué Gradle sobre Maven? Existen múltiples razones, empezaré por la más notoria.

Esto es un pom.xml genérico:

Y esto es un build.gradle genérico:

La gran diferencia entre estas herramientas es la sintaxis con la que se escriben. Maven utiliza XML y Gradle Groovy. Ambas hacen las mismas acciones, sin embargo, podemos decir que la implementación en Gradle es más fácil de leer y mantener. Eso se debe a que, a diferencia de XML, no utiliza tags para abrir y cerrar sus sentencias. En ese aspecto tengo que felicitar a Gradle por ser mucho más limpio en su sintaxis y fácil de modificar para, por ejemplo: instalar un nuevo plugin o instalar nuevas dependencias.

Otra gran diferencia es la manera en que Gradle administra sus dependencias. Pueden ver en las imágenes anteriores la sintaxis para instalar una dependencia. En otro artículo hablaremos sobre eso, pero a diferencia de Maven que debemos abrir tres tags para groupId, artifactId y version, podemos tener todo en una sola línea con Gradle.

Yendo a diferencia técnicas, Gradle utiliza algo llamado daemons. Estos son servicios que nos ayudarán a agilizar nuestros compilados. Imaginemos que son ayudantes, que la primera vez que los llamamos descargarán las dependencias, compilarán el código y lo dejarán guardado en caché para nuestro futuros build. Entonces, la próxima vez que ejecutemos una compilación, estos daemons tendrán la información lista para nosotros y serán enormemente más veloces.

Podemos concluir entonces que para realizar la misma tarea, Gradle nos ofrece varias ventajas sobre Maven, y no hemos entrado en detalles como la generación de tareas, sino quedándonos en lo básico para iniciar un proyecto en Java y poder instalar sus dependencias con facilidad.

A futuro, nosotros mismos nos felicitaremos por utilizar un lenguaje fácil de leer y ordenado, porque si requiere más de unos segundos entender un archivo de Maven o Gradle, seguramente estemos obviando optimizar nuestro código.

--

--