create-quarkus-project — GitHub Copilot skill: setup & use
Scaffolds new Quarkus applications using CLI or build plugins and runs them in dev mode. Useful when bootstrapping Java REST services on Maven or Gradle.
gh skill install github/awesome-copilot create-quarkus-projectWhat create-quarkus-project does
The skill inspects local tooling: Java 17, 21, or 25, build tools like mvn or gradle, and optional Quarkus CLI. If an existing Quarkus BOM or plugin is detected, scaffolding stops immediately to prevent overwriting project files. New setups pick the recommended LTS stream directly from the code.quarkus.io API, deliberately avoiding Quarkus 4.0 beta releases.
Bootstrapping works via quarkus create app, the quarkus-maven-plugin, or fetching an archive straight from the online API. It assigns standard extension bundles like rest-jackson, hibernate-orm-panache, and smallrye-health. If a requested extension is absent from the selected LTS stream, the CLI silently downgrades to an older stream, requiring a manual check of quarkus.platform.version.
Running ./mvnw quarkus:dev or ./gradlew quarkusDev starts live reload alongside Dev Services and the Dev UI console at http://localhost:8080/q/dev-ui. Integration test classes ending in *IT are skipped by default in Maven; passing -DskipITs=false executes them.
What it helps with
- Scaffold a Quarkus service targeting Java 21 or Java 25
- Add extensions for persistence, health checks, and JSON APIs
- Configure Maven or Gradle build tooling automatically
- Start the local runtime with live reload and Dev UI
Example prompts for the agent
- Scaffold a new Quarkus application using Java 21 and Maven
- Create a Quarkus project with extensions for database access and health checks
- Launch the current Quarkus project in dev mode with live reload
How to install create-quarkus-project
1GitHub CLI
gh skill install github/awesome-copilot create-quarkus-project2Manually: put the files in place
.github/skills/create-quarkus-project/SKILL.md1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill create-quarkus-project -a claude-code2Manually: put the files in place
~/.claude/skills/create-quarkus-project/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/create-quarkus-project/
Manually: put the files in place
.agents/skills/create-quarkus-project/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/create-quarkus-project/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
Platform CLI
gemini skills install https://github.com/github/awesome-copilot --path skills/create-quarkus-projectManually: put the files in place
.devin/skills/create-quarkus-project/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about create-quarkus-project
How do I install create-quarkus-project for GitHub Copilot?
Run gh skill install github/awesome-copilot create-quarkus-project or place the definition file into .github/skills/create-quarkus-project/SKILL.md.
What does create-quarkus-project do?
It validates local build tools, generates a Quarkus codebase using LTS streams, configures requested extensions, and guides starting the live-reload dev mode.
How does the skill handle an existing project directory?
It scans for quarkus-maven-plugin or the Quarkus platform BOM. If present, it reads the current version and halts scaffolding to avoid overwriting code.
Source text
SKILL.md · MIT
--- name: create-quarkus-project description: 'Create a new Quarkus project (Maven or Gradle) with the Quarkus CLI, code.quarkus.io API or Maven plugin, choose extensions, and run it in dev mode. Use when asked to scaffold, bootstrap or start a Quarkus application or REST API.' --- # Create a Quarkus Project ## 1. Detect the environment ```bash java -version # Java 17, 21 or 25 (Quarkus 3.40 recommends 25, 3.27 recommends 21) quarkus --version # optional Quarkus CLI ./mvnw -v || mvn -v # or ./gradlew -v ``` If the folder already contains a Quarkus project (`io.quarkus.platform` BOM, `quarkus-maven-plugin`, or `io.quarkus` Gradle plugin), do NOT scaffold: read its Quarkus version and keep it. For a new project, use the stream marked recommended on https://code.quarkus.io/api/streams (an LTS stream; see also https://quarkus.io/support/), and do not invent a patch version: let the tool pick it. Quarkus 4.0 is still a beta, so do not use it unless asked. If an extension is missing from the recommended stream, the CLI silently picks an older stream; check `quarkus.platform.version` in the generated build file. ## 2. Scaffold (pick one) Quarkus CLI (install via https://quarkus.io/get-started/ , e.g. SDKMAN `sdk install quarkus`): ```bash quarkus create app com.example:demo \ --extension='rest-jackson,hibernate-orm-panache,jdbc-postgresql,hibernate-validator,smallrye-health' \ --java=21 --maven # or --gradle ``` No CLI: Maven plugin (pin the version to the current release from https://quarkus.io/guides/maven-tooling, replace `QUARKUS_VERSION` below with it): ```bash 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 # or gradle ``` Or generate from the https://code.quarkus.io web UI / REST API (`https://code.quarkus.io/d?g=com.example&a=demo&e=rest-jackson&b=MAVEN`) and unzip. ## 3. Choose extensions | Need | Extension | |---|---| | REST + JSON | `rest-jackson` (Quarkus REST; not legacy `resteasy`) | | Database ORM | `hibernate-orm-panache`, `jdbc-postgresql` | | Validation | `hibernate-validator` | | Health / metrics | `smallrye-health`, `micrometer-registry-prometheus` | | Auth | `oidc` or `smallrye-jwt` | | OpenAPI | `smallrye-openapi` | | REST client | `rest-client-jackson` | | Container | `container-image-jib` (or `container-image-docker`) | Add later with `quarkus extension add <name>` or `./mvnw quarkus:add-extension -Dextensions=<name>`; `quarkus extension list --installable` lists options. ## 4. Layout and run ``` src/main/java/... # resources, services, entities src/main/resources/application.properties src/main/docker/ # Dockerfile.jvm, Dockerfile.native, ... src/test/java/... # @QuarkusTest / @QuarkusIntegrationTest ``` ```bash ./mvnw quarkus:dev # or: quarkus dev / ./gradlew quarkusDev ``` Generated tests include a `*IT` class that Maven skips by default (`<skipITs>true</skipITs>` in the template); run it with `./mvnw verify -DskipITs=false` or `-Dnative`. Dev mode gives live reload, Dev UI at http://localhost:8080/q/dev-ui, Dev Services (auto containers), and continuous testing (press `r`). Package: `./mvnw package` (runnable `target/quarkus-app/quarkus-run.jar`). ## References - [Configuration](references/configuration.md) - [Database (Dev Services, Hibernate, Flyway/Liquibase)](references/database.md) - [Security basics](references/security.md) - [Container images](references/container-image.md) - [Local runtime insights (BootUI)](references/local-runtime-insights.md) Verified (scaffold, `./mvnw verify`, `./gradlew build`, dev mode, Dev Services PostgreSQL, JDK 26 with Java 25 release) on Quarkus 3.40.1 (current recommended LTS stream) and `./mvnw verify` on 3.27.6 (older LTS). Related skills: `quarkus-dev-services-and-testing`, `quarkus-native-and-container`. ## Upstream sources (read before upgrading) Fetch the page for the target version; prefer it over this skill when they conflict. - `quarkus update` (automated upgrade, uses OpenRewrite): <https://quarkus.io/guides/update-quarkus> - Migration guides, one wiki page per minor: <https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.20> (change the version) - Release announcements: <https://quarkus.io/blog/> - LTS policy and current LTS: <https://quarkus.io/blog/lts-releases/>
© github · MIT · github/awesome-copilot