Spring Boot (Java)

Spring Boot fonctionne sur Kavio sans aucune variable d'environnement à déclarer dans le cas le plus courant (Maven + spring-boot-starter-parent), à condition de connaître deux ou trois points propres à la JVM.

Le port est injecté automatiquement — ne le lisez pas vous-même

Kavio détecte un projet Spring Boot par la présence de org.springframework.boot/spring-boot dans votre pom.xml, puis démarre l'application avec -Dserver.port=$PORT ajouté directement à la commande java. Le port de la plateforme arrive donc en propriété système, pas en variable d'environnement à lire dans votre code — un pom.xml standard généré par start.spring.io fonctionne tel quel, sans toucher à application.properties.

Un seul jar dans target/

La commande de démarrage cherche le jar exécutable avec un motif target/*jar. Avec le plugin spring-boot-maven-plugin standard (déjà inclus par spring-boot-starter-parent), le jar est repackagé à la même place — rien à faire. Si votre configuration Maven produit plusieurs jars dans target/ (jar de sources, de javadoc…), le démarrage automatique ne saura plus lequel choisir.

Choisir sa version de JDK

Sans rien préciser, Kavio utilise le JDK 21 par défaut. Pour en fixer une autre (par exemple la 25), utilisez la variable d'environnement RAILPACK_JDK_VERSION :

RAILPACK_JDK_VERSION=25

⚠️ Le préfixe RAILPACK_ est obligatoire, y compris si une documentation tierce ou le code source du provider Java ne le mentionne qu'en filigrane (le nom « nu » JDK_VERSION y est utilisé en interne, mais toute variable de config Railpack — RAILPACK_START_CMD, RAILPACK_PYTHON_VERSION, RAILPACK_JDK_VERSION… — est systématiquement préfixée côté plateforme). Sans ce préfixe, la variable est silencieusement ignorée : le build repart sur le JDK 21 par défaut, et si votre pom.xml cible une version plus récente (<java.version>25</java.version>), la compilation échoue avec error: release version 25 not supported — un JDK trop ancien pour compiler du bytecode plus récent que lui, jamais un JDK incompatible silencieux.

Le CSS/JS statique fonctionne sans rien faire

Un dossier src/main/resources/static/ est servi nativement par Spring Boot (Tomcat embarqué), sans étape de build à ajouter.

Ce qui n'est pas nécessaire

Vous n'avez rien à faire concernant :

  • PORT — automatiquement imposé par la plateforme, injecté en propriété système server.port (voir plus haut).
  • Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).