Entorno de desarrollo ideal para Quarkus: cómo instalar Java, Maven, GraalVM y Quarkus CLI con SDKMAN!

Antes de sumarte a una misión con múltiples microservicios Quarkus, es clave contar con un entorno de desarrollo flexible, limpio y fácil de mantener.

En esta guía te muestro cómo instalar Java, GraalVM, Mandrel, Maven y Quarkus CLI usando SDKMAN!, una herramienta que con un solo comando simplifica la instalación y te permite cambiar entre distintas versiones de Java automáticamente.


🧰 ¿Qué es SDKMAN!?

SDKMAN! es un gestor de versiones para herramientas del ecosistema Java: JDKs, Maven, Gradle, Quarkus CLI y más.

¿Por qué usarlo?

  • Permite tener múltiples versiones instaladas sin conflictos
  • Cambia automáticamente JAVA_HOME al alternar versiones
  • Ideal para trabajar con diferentes proyectos que usan distintas versiones de Java

Quarkus soporta Java 17 (mínima) y Java 21 (recomendada).


📥 Instalando SDKMAN!

Funciona en Linux, macOS y WSL (Windows Subsystem for Linux).

1. Instala SDKMAN!:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

2. Abre una nueva ventana del terminal y verifica la instalación:

sdk version

☕ Instalando Maven y Quarkus CLI

Con SDKMAN! instalado, ejecuta estos comandos:

sdk install java 21.0.9-tem
sdk install maven
sdk install quarkus

Verifica que todo quedó operativo:

java -version
mvn -v
quarkus --version

¿Qué versiones se instalaron?

HerramientaVersión instalada
JavaÚltima LTS de Eclipse Temurin (Adoptium)
MavenÚltima versión estable
Quarkus CLIÚltima versión estable

¿OpenJDK, Adoptium, Temurin? Aclaremos la confusión

Estos términos suelen generar dudas. Aquí la explicación simple:

Término¿Qué es?
OpenJDKLa implementación open source de Java. Es el código fuente base, no un instalador.
Eclipse AdoptiumUn proyecto de la Eclipse Foundation que construye y distribuye binarios de OpenJDK. Antes se llamaba AdoptOpenJDK.
TemurinEl nombre de la distribución de OpenJDK que produce Adoptium. Es lo que realmente instalas.

En resumen: Temurin son binarios listos para usar de OpenJDK, producidos por Adoptium.

Compatibilidad con Quarkus y RHBQ

DistribuciónQuarkus (comunidad)RHBQ
Temurin (Adoptium)✅ Soportado✅ Soportado en modo JVM
Red Hat build of OpenJDK✅ Soportado✅ Soportado (recomendado para producción)

📘 Para RHBQ en producción: Red Hat recomienda usar Red Hat build of OpenJDK para soporte completo. Sin embargo, Temurin es válido para desarrollo y para modo JVM en producción (el soporte de Red Hat se limita a problemas en Quarkus, no en la JVM).


⌨️ Autocompletado de Quarkus CLI

Para que la terminal sugiera y complete comandos mientras escribes:

echo "source <(quarkus completion)" >> ~/.bashrc   # o ~/.zshrc
  • Usa ~/.bashrc para Bash (común en Linux y WSL)
  • Usa ~/.zshrc para Zsh (predeterminado en macOS)

💡 ¿No sabes cuál tienes? Ejecuta echo $SHELL


🔧 Instalando otras versiones de Java

Ver versiones disponibles de Temurin

sdk list java | grep tem

Verás algo como:

 Temurin       |     | 25.0.1       | tem     |            | 25.0.1-tem          
               |     | 24.0.2       | tem     |            | 24.0.2-tem          
               |     | 23.0.2       | tem     |            | 23.0.2-tem          
               | >>> | 21.0.9       | tem     | installed  | 21.0.9-tem          
               |     | 17.0.17      | tem     |            | 17.0.17-tem         
               |     | 11.0.29      | tem     |            | 11.0.29-tem   

Instalar una versión específica

sdk install java 17.0.17-tem

🚀 Instalando GraalVM o Mandrel (para ejecutables nativos)

Si quieres compilar tu aplicación como ejecutable nativo (arranque en milisegundos, menor consumo de memoria), necesitas GraalVM o Mandrel.

Opción¿Qué es?¿Cuándo usarla?
MandrelVersión de GraalVM optimizada por Red Hat para QuarkusRecomendada para Quarkus y RHBQ
GraalVM CEVersión comunitaria completa de GraalVMSi Mandrel no está disponible para tu plataforma

📘 Para entender cuándo conviene usar ejecutables nativos, consulta JAR vs ejecutable nativo en Quarkus.

Instalar Mandrel

1. Ver versiones disponibles:

sdk list java | grep mandrel

El versionado de Mandrel usa un esquema como 23.1.9.r21-mandrel, donde r21 indica que está basado en OpenJDK 21.

2. Instalar la última versión:

sdk install java 23.1.9.r21-mandrel

⚠️ Mandrel no está disponible en macOS con arquitectura Intel (amd64/x86). En ese caso, instala GraalVM CE o ejecuta Mandrel desde un contenedor.

3. Configurar GRAALVM_HOME (GraalVM y Mandrel):

SDKMAN! no configura automáticamente GRAALVM_HOME, así que debes hacerlo manualmente.

Agrega al final de tu archivo de entorno (~/.bashrc o ~/.zshrc):

# Configuración para ejecutables nativos con Quarkus
export GRAALVM_HOME=$(sdk home java 23.1.9.r21-mandrel)

4. Recarga y verifica:

source ~/.zshrc # o ~/.bashrc 
echo $GRAALVM_HOME

Instalar GraalVM CE (alternativa)

Si no puedes usar Mandrel:

sdk list java | grep graalce
sdk install java 21.0.2-graalce

Luego configura GRAALVM_HOME.

📘 Para más detalles sobre GraalVM vs Mandrel, consulta Ejecutables nativos en Quarkus: GraalVM, Mandrel y el runtime oculto.


🧭 Gestionar versiones de Java

Una vez que tengas varias versiones instaladas, puedes alternar entre ellas:

Establecer versión predeterminada (global)

sdk default java 21.0.9-tem

Esta será la versión que se use en todas las terminales nuevas.

Usar una versión solo en la terminal actual

sdk use java 17.0.17-tem

Útil cuando trabajas en un proyecto que requiere una versión específica.

Ver qué versión estás usando

sdk current java

🔄 Mantener todo actualizado

Ejecuta periódicamente:

sdk upgrade java
sdk upgrade maven
sdk upgrade quarkus

📋 Resumen de comandos SDKMAN!

ComandoDescripción
sdk install <tool>Instala la última versión
sdk install <tool> <version>Instala una versión específica
sdk list <tool>Lista versiones disponibles
sdk use <tool> <version>Usa una versión solo en esta terminal
sdk default <tool> <version>Establece versión predeterminada global
sdk current <tool>Muestra la versión actual en uso
sdk upgrade <tool>Actualiza a la última versión
sdk home <tool> <version>Muestra el directorio de instalación

Todo listo. Ya puedes comenzar tus misiones por el Quarkiverso. ¡Buen viaje! 🚀