Créer un projet Quarkus
1. Détecter l'environnement
java -version # Java 17, 21 ou 25 (Quarkus 3.40 recommande 25, 3.27 recommande 21)
quarkus --version # CLI Quarkus optionnel
./mvnw -v || mvn -v # ou ./gradlew -v
Si le dossier contient déjà un projet Quarkus (BOM io.quarkus.platform, quarkus-maven-plugin, ou plugin Gradle io.quarkus), ne générez PAS la structure : lisez sa version Quarkus et conservez-la. Pour un nouveau projet, utilisez le stream marqué comme recommandé sur https://code.quarkus.io/api/streams (un stream LTS ; voir aussi https://quarkus.io/support/), et n'inventez pas de numéro de patch : laissez l'outil le choisir. Quarkus 4.0 est encore en bêta, ne l'utilisez donc pas sauf si demandé. Si une extension manque du stream recommandé, la CLI choisit silencieusement un stream plus ancien ; vérifiez quarkus.platform.version dans le fichier de build généré.
2. Générer la structure (choisissez un)
CLI Quarkus (installer via https://quarkus.io/get-started/ , par ex. SDKMAN sdk install quarkus) :
quarkus create app com.example:demo \
--extension='rest-jackson,hibernate-orm-panache,jdbc-postgresql,hibernate-validator,smallrye-health' \
--java=21 --maven # ou --gradle
Sans CLI : plugin Maven (épinglez la version à la version actuelle de https://quarkus.io/guides/maven-tooling, remplacez QUARKUS_VERSION ci-dessous par celle-ci) :
mvn io.quarkus.platform:quarkus-maven-plugin:QUARKUS_VERSION:create \
-DprojectGroupId=com.example -DprojectArtifactId=demo \
-Dextensions='rest-jackson,hibernate-orm-panache,jdbc-postgresql' \
-DbuildTool=maven # ou gradle
Ou générez depuis l'interface web https://code.quarkus.io / API REST (https://code.quarkus.io/d?g=com.example&a=demo&e=rest-jackson&b=MAVEN) et dézippez.
3. Choisir les extensions
| Besoin | Extension |
|---|---|
| REST + JSON | rest-jackson (Quarkus REST ; pas le legacy resteasy) |
| ORM de base de données | hibernate-orm-panache, jdbc-postgresql |
| Validation | hibernate-validator |
| Santé / métriques | smallrye-health, micrometer-registry-prometheus |
| Auth | oidc ou smallrye-jwt |
| OpenAPI | smallrye-openapi |
| Client REST | rest-client-jackson |
| Conteneur | container-image-jib (ou container-image-docker) |
Ajoutez plus tard avec quarkus extension add <name> ou ./mvnw quarkus:add-extension -Dextensions=<name> ; quarkus extension list --installable liste les options.
4. Structure et exécution
src/main/java/... # ressources, services, entités
src/main/resources/application.properties
src/main/docker/ # Dockerfile.jvm, Dockerfile.native, ...
src/test/java/... # @QuarkusTest / @QuarkusIntegrationTest
./mvnw quarkus:dev # ou : quarkus dev / ./gradlew quarkusDev
Les tests générés incluent une classe *IT que Maven ignore par défaut (<skipITs>true</skipITs> dans le modèle) ; exécutez-la avec ./mvnw verify -DskipITs=false ou -Dnative. Le mode dev donne le rechargement à chaud, Dev UI à http://localhost:8080/q/dev-ui, Dev Services (conteneurs auto), et test continu (appuyez sur r). Package : ./mvnw package (fichier JAR exécutable target/quarkus-app/quarkus-run.jar).
Références
- Configuration
- Base de données (Dev Services, Hibernate, Flyway/Liquibase)
- Notions de sécurité
- Images conteneur
- Insights de runtime local (BootUI)
Vérifié (génération de structure, ./mvnw verify, ./gradlew build, mode dev, Dev Services PostgreSQL, JDK 26 avec Java 25 release) sur Quarkus 3.40.1 (stream LTS actuel recommandé) et ./mvnw verify sur 3.27.6 (LTS ancien).
Skills connexes : quarkus-dev-services-and-testing, quarkus-native-and-container.
Sources upstream (lisez avant une mise à jour)
Récupérez la page pour la version cible ; préférez-la à cette skill en cas de conflit.
quarkus update(mise à jour automatisée, utilise OpenRewrite) : https://quarkus.io/guides/update-quarkus- Guides de migration, une page wiki par version mineure : https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.20 (changez la version)
- Annonces de versions : https://quarkus.io/blog/
- Politique LTS et LTS actuel : https://quarkus.io/blog/lts-releases/