Quarkus (Java)

Quarkus fonctionne sur Kavio, mais contrairement à Spring Boot, deux réglages sont indispensables — sans eux le build réussit mais l'application ne démarre pas.

1. Le port n'est pas injecté automatiquement

Kavio détecte un projet Java par la présence d'un pom.xml, mais l'injection automatique du port (-Dserver.port=$PORT) ne concerne que Spring Boot et WildFly Swarm, reconnus par des chaînes précises dans le pom.xml. Quarkus n'y est pas reconnu : il faut lire PORT vous-même, via application.properties :

quarkus.http.port=${PORT:8080}
quarkus.http.host=0.0.0.0

2. La commande de démarrage par défaut ne trouve rien à lancer

Railpack cherche un jar exécutable avec le motif target/*jar. Ça fonctionne pour Spring Boot, mais l'empaquetage fast-jar de Quarkus — celui recommandé en production, à garder tel quel — ne pose aucun jar directement dans target/ : le jar exécutable réel est target/quarkus-app/quarkus-run.jar.

Sans intervention, le démarrage échoue (« Unable to access jarfile target/*jar »). La solution : surcharger la commande de démarrage avec la variable d'environnement RAILPACK_START_CMD (toute variable de configuration Railpack est systématiquement préfixée RAILPACK_) :

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

Le JSON ne se sérialise pas tout seul

Si vos endpoints REST renvoient des objets Java bruts au lieu de JSON, il manque l'extension Jackson (ou JSON-B) dans votre pom.xml :

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-rest-jackson</artifactId>
</dependency>

Ce n'est pas propre à Kavio — quarkus-rest seul ne l'inclut pas, sur n'importe quel hébergeur.

Le CSS/JS statique fonctionne sans rien faire

Un dossier src/main/resources/META-INF/resources/ est servi nativement, sans étape de build à ajouter.

Choisir sa version de JDK

Sans rien préciser, Kavio utilise le JDK 21 par défaut — surchargeable via RAILPACK_JDK_VERSION (voir la page Spring Boot pour le détail du mécanisme, identique ici).

Ce qui n'est pas nécessaire

Vous n'avez rien à faire concernant :

  • Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).