Getting Started

Requirements

  • Java 25

  • Maven 3.9+

Build

Full build (TUI + headless)

mvn -q -DskipTests package
# or: just build
# or: ./mvnw -DskipTests package

This creates target/quarkus-forge.jar.

Headless-only build

mvn -q clean package -Pheadless
# or: just build-headless
# or: ./mvnw clean package -Pheadless

This creates target/quarkus-forge-headless.jar — a smaller jar without TUI/terminal dependencies, ideal for CI pipelines and containers.

A justfile is included with common recipes. Run just to see all available commands. A Maven Wrapper (./mvnw) is also included — no global Maven install required.

Choose Your Mode

TUI mode (interactive):

java --enable-native-access=ALL-UNNAMED -jar target/quarkus-forge.jar
--enable-native-access=ALL-UNNAMED suppresses Panama FFM warnings from the TamboUI terminal backend.

Headless mode (automation/CI):

java -jar target/quarkus-forge-headless.jar generate \
  --group-id org.acme \
  --artifact-id demo \
  --build-tool maven \
  --java-version 25 \
  --preset web \
  --extension io.quarkus:quarkus-smallrye-health
The full jar (quarkus-forge.jar) also supports the generate subcommand. The headless-only jar is preferred for CI/containers as it carries no TUI or terminal dependencies.

Deterministic replay with a Forgefile:

java -jar target/quarkus-forge-headless.jar generate --from Forgefile

Save a reusable template in the machine-local recipes library:

java -jar target/quarkus-forge-headless.jar generate \
  --dry-run \
  --group-id org.acme \
  --artifact-id demo \
  --build-tool maven \
  --java-version 25 \
  --save-as starter.json

Install With JBang

Run directly from the org catalog:

jbang quarkus-forge@ayagmar

Run the headless-only version (no TUI dependencies):

jbang quarkus-forge-headless@ayagmar generate \
  --group-id org.acme \
  --artifact-id demo

Install as a local command:

jbang app install --name quarkus-forge quarkus-forge@ayagmar
quarkus-forge