Hola Quarkus: tu primera aplicación en 5 minutos

¿Quarkus te parece intimidante? Vamos a cambiar eso. Con este tutorial tendrás una aplicación corriendo y vas a entender por qué tantos desarrolladores están entusiasmados con este framework.

No necesitas saber nada de Quarkus para seguir este artículo. Solo Java básico.


Requisitos:

  • Java 17 ó 21 (soportadas por Quarkus)
  • Maven 3.9 o superior
  • Quarkus CLI

¿No cumples todos los requisitos? Revisa Entorno de desarrollo ideal para Quarkus donde explicamos cómo instalar todo fácilmente.


🚀 Crear el proyecto

Abre tu terminal y ejecuta:

quarkus create app hola-quarkus

Eso es todo. Quarkus acaba de crear un proyecto completo con todo lo necesario.


▶️ Ejecutar

Entra al directorio y arranca la aplicación:

cd hola-quarkus
quarkus dev

Verás algo como:

__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   

INFO  Listening on: http://localhost:8080
INFO  Profile dev activated. Live Coding activated.
INFO  Installed features: [cdi, rest, smallrye-context-propagation, vertx]
--
Tests paused
Press [h] for more options>

Tu aplicación ya está corriendo en modo desarrollo. 🎉


🌐 Probar

Abre otra terminal (o tu navegador) y haz:

curl http://localhost:8080/hello

Respuesta:

Hello from Quarkus REST

¡Funciona! Quarkus creó un endpoint de ejemplo por ti.


✏️ Modificar

Abre el archivo src/main/java/org/acme/GreetingResource.java:

package org.acme;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello")
public class GreetingResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "Hello from Quarkus REST";
    }
}

Cambia el mensaje:

return "¡Hola Quarkus!";

Guarda el archivo. No necesitas reiniciar nada. Simplemente vuelve a llamar al endpoint:

curl http://localhost:8080/hello

Respuesta:

¡Hola Quarkus!

¡El cambio ya está reflejado! Quarkus detectó la modificación y recompila automáticamente en la siguiente petición. Eso es Live Coding: editas, guardas, pruebas. Sin reiniciar.

🚨 Importante: También actualiza el test en src/test/java/org/acme/GreetingResourceTest.java. Busca "Hello from Quarkus REST" y cámbialo por "¡Hola Quarkus!". Si no lo haces, el build fallará más adelante.


🎛️ Dev UI

Mientras la aplicación corre, abre en tu navegador:

http://localhost:8080/q/dev

Bienvenido al Dev UI: un panel interactivo donde puedes explorar tu aplicación, ver configuraciones, extensiones instaladas, y mucho más. Navega el panel para ir familiarizándote.

💡Si presionas la tecla d (Dev UI)en la terminal donde corre la aplicación, Quarkus abrirá Dev UI en el navegador por ti.


📦 Empaquetar

Detén la aplicación presionando q (quit) en la terminal donde corre la aplicación. Cuando quieras generar un JAR para desplegar ejecuta:

quarkus build

El JAR queda en target/quarkus-app/. Para ejecutarlo usa:

java -jar target/quarkus-app/quarkus-run.jar

✅ Resumen

En 5 minutos lograste:

PasoComando
Crear proyectoquarkus create app hola-quarkus
Ejecutar en devquarkus dev
Probarcurl http://localhost:8080/hello
Empaquetarquarkus build

🤔 ¿Y ahora?

Esto fue solo el comienzo. Quarkus tiene mucho más:

  • Bases de datos que se levantan solas (Dev Services)
  • Compilación nativa para arranques en milisegundos
  • Cientos de extensiones para cualquier tecnología

Pero eso ya lo irás descubriendo. Por ahora, lo importante es que ya tienes Quarkus corriendo.

¡Bienvenido al Quarkiverso! 🚀