Ir al contenido principal

Primero proyecto: Quarkus con Gradle

Tutorial Completo: Quarkus con Gradle y JAR ejecutable

1️⃣ Crear el proyecto

Desde tu carpeta de trabajo:

quarkus create app py.com:jsifen --extension=resteasy-reactive --gradle
cd jsifen
  • py.com → GroupId
  • jsifen → ArtifactId (nombre del proyecto)
  • --extension=resteasy-reactive → agrega soporte REST
  • --gradle → usa Gradle como build tool

Esto genera la estructura básica del proyecto.

2️⃣ Estructura del proyecto

jsifen/
    build.gradle        # configuración principal de Gradle
    gradlew             # wrapper de Gradle (Linux/Mac)
    gradlew.bat         # wrapper de Gradle (Windows)
    gradle/             # archivos del wrapper
        .gradle/        # caché de Gradle
    gradle.properties   # configuración de Gradle
    settings.gradle     # nombre del proyecto
    src/                # código fuente
    build/              # salida de compilación

💡 No borrar nada salvo build/ o .gradle/ para limpiar caché.

3️⃣ Configuración de Java y dependencias

En build.gradle:

plugins {
    id 'java'
    id 'io.quarkus'
}

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-rest'
    implementation 'io.quarkus:quarkus-arc'
    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
}

group = 'py.com'
version = '1.0.0-SNAPSHOT'

java {
    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}

test {
    systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager"
}

compileJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << '-parameters'
}

compileTestJava {
    options.encoding = 'UTF-8'
}
  • Usa Java 21
  • Define dependencias necesarias para REST y pruebas
  • Configura encoding UTF-8 y parámetros de compilación

4️⃣ Cambiar el puerto del servidor

En src/main/resources/application.properties:

quarkus.http.port=8000
quarkus.http.ssl-port=8443  # opcional para HTTPS

Esto arranca Quarkus en http://localhost:8000.

5️⃣ Ejecutar en modo desarrollo

./gradlew quarkusDev
  • Levanta un servidor en modo hot reload
  • Cambios en código o recursos se reflejan automáticamente
  • Endpoint de prueba: http://localhost:8000/hello

💡 También podés usar tu Gradle global (gradle quarkusDev), pero se recomienda el wrapper para asegurar la versión correcta.

6️⃣ Compilar JAR ejecutable

Para enviar a otra PC, necesitás un JAR ejecutable con todas las dependencias:

./gradlew quarkusBuild -x test

Genera el JAR ejecutable en:

build/quarkus-app/quarkus-run.jar

Ejecutarlo:

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

Esto arranca la aplicación en el puerto definido en application.properties.

7️⃣ Notas importantes

  • Gradle Wrapper (gradlew): garantiza que el proyecto use la versión correcta de Gradle.
  • No borrar: gradlew, gradle/, build.gradle, settings.gradle, src/
  • Se puede borrar: build/ y .gradle/ para limpiar caché.
  • Para acelerar el build: ./gradlew build -x test
  • El JAR normal (jsifen-1.0.0-SNAPSHOT.jar) no es ejecutable; solo quarkus-run.jar lo es.

Comentarios

Entradas populares de este blog

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Tutorial: n8n con Docker Compose en Linux

Tutorial Completo: Instalar y correr n8n en Linux con Docker Compose Este tutorial te guiará paso a paso para instalar y ejecutar n8n usando Docker Compose en un sistema Linux (como Ubuntu), con buenas prácticas y configuraciones recomendadas. --- 1. Actualizar el sistema Es buena práctica empezar actualizando los paquetes y sistema: Copiar sudo apt update sudo apt upgrade -y --- 2. Instalar dependencias necesarias para Docker Copiar sudo apt install -y ca-certificates curl gnupg lsb-release --- 3. Agregar repositorio oficial de Docker Copiar sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update --- 4. ...