Introducción: ¿Qué son Maven y Gradle y para qué sirven?
\n\nEn el mundo del desarrollo Java existe un problema fundamental: ¿cómo gestionar las dependencias (bibliotecas externas), automatizar la compilación del proyecto, ejecutar pruebas y crear los artefactos finales (JAR, WAR)? Descargar archivos JAR manualmente y configurar el classpath es un camino sin salida, especialmente para proyectos con decenas de dependencias.
\n\nMaven y Gradle son los dos sistemas de compilación automática (build automation tools) más populares para Java. Resuelven las siguientes tareas:
\n- \n
- Gestión de dependencias: descarga automática de bibliotecas desde repositorios centrales (Maven Central, Google Maven) y sus dependencias transitivas. \n
- Estandarización del ciclo de vida: compilación, pruebas, empaquetado, despliegue: todo se ejecuta con comandos estándar. \n
- Reproducibilidad de las compilaciones: cualquier desarrollador puede compilar el proyecto con un solo comando, teniendo solo el código fuente y el archivo de configuración. \n
- Integración con CI/CD: Jenkins, GitLab CI, GitHub Actions ejecutan fácilmente compilaciones de Maven/Gradle. \n
Maven utiliza XML (archivo pom.xml) y un ciclo de vida estricto. Gradle utiliza Groovy o Kotlin DSL (archivo build.gradle o build.gradle.kts), es más flexible y rápido gracias a la compilación incremental. En este artículo veremos ambas herramientas, pero nos centraremos en Gradle como la solución más moderna.
Instalación de Maven y Gradle
\n\nInstalación de Maven
\nMaven no se instala a través de pip o npm. Debe descargarse desde el sitio web oficial o instalarse mediante el gestor de paquetes del sistema operativo.
\n# macOS (Homebrew)\nbrew install maven\n\n# Ubuntu/Debian\nsudo apt-get update\nsudo apt-get install maven\n\n# Windows (Chocolatey)\nchoco install maven\n\n# Verificar la instalación\nmvn --version\n\nInstalación de Gradle
\nGradle también se instala por separado. Se recomienda usar SDKMAN! para gestionar las versiones.
\n# Instalar SDKMAN (si aún no está instalado)\ncurl -s "https://get.sdkman.io" | bash\nsource "$HOME/.sdkman/bin/sdkman-init.sh"\n\n# Instalar la última versión de Gradle\nsdk install gradle\n\n# Verificar\ngradle --version\n\n# Alternativa: descargar desde https://gradle.org/releases/ y descomprimir\n\nInicio rápido: Creación de un proyecto
\n\nCreación de un proyecto con Maven
\nMaven puede generar un esqueleto de proyecto mediante arquetipos (archetypes).
\n# Crear un proyecto Java simple\nmvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false\n\n# Ir a la carpeta del proyecto\ncd my-app\n\n# Compilar el proyecto\nmvn clean package\n\n# Ejecutar (si la clase main está configurada)\njava -cp target/my-app-1.0-SNAPSHOT.jar com.example.App\n\nCreación de un proyecto con Gradle
\nGradle utiliza el comando init para crear un esqueleto.
# Crear una carpeta e inicializar el proyecto\nmkdir my-gradle-app\ncd my-gradle-app\ngradle init\n\n# Seleccionar: 2: application -> 3: Java -> 1: Groovy DSL -> 2: JUnit Jupiter -> Enter\n\n# Compilar y ejecutar\n./gradlew build\n./gradlew run\n\nDespués de esto, tendrá una estructura de proyecto con los archivos build.gradle (o pom.xml para Maven) y las carpetas src/main/java y src/test/java.
Métodos/Funciones principales (Gradle DSL)
\nVeamos las construcciones clave de Gradle (Groovy DSL). Para Maven son análogas, pero con sintaxis XML.
\n\n1. dependencies { ... }
\nQué hace: Define las dependencias del proyecto: bibliotecas externas que se descargarán de los repositorios.
\nParámetros: Dentro del bloque se especifican las configuraciones (implementation, testImplementation, compileOnly, etc.) y las coordenadas
También en la biblioteca
GraphQL en Go: Guía completa de bibliotecas y herramientas
KSP Kotlin: Guía completa de Kotlin Symbol Processing con ejemplos
Generación de PDF en JavaScript: biblioteca pdf-lib