This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
You can run your application in dev mode that enables live coding using:
./mvnw compile quarkus:dev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
The application can be packaged using:
./mvnw package
It produces the quarkus-run.jar
file in the target/quarkus-app/
directory.
Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/
directory.
The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar
.
If you want to build an über-jar, execute the following command:
./mvnw package -Dquarkus.package.type=uber-jar
The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar
.
You can create a native executable using:
./mvnw package -Dnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./mvnw package -Dnative -Dquarkus.native.container-build=true
You can then execute your native executable with: ./target/quiz-api-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
- JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC
- Hibernate ORM with Panache (guide): Simplify your persistence code for Hibernate ORM via the active record or the repository pattern
Create your first JPA entity
Related Hibernate with Panache section...
Easily start your Reactive RESTful Web Services
quarkus create app net.resultrite.api:quiz-api \
--extension='quarkus-resteasy-reactive-jackson,quarkus-jdbc-postgresql,quarkus-hibernate-orm-panache'
- Packge
./mvnw package -Dnative -Dquarkus.native.container-build=true
- Build
docker build -f src/main/docker/Dockerfile.native-micro -t quarkus/quiz-api:1.0 .
- Run using docker compose
cat <<EOF > docker-compose.yaml
version: '3.1'
services:
pgdblocal:
image: postgres:16.1-bookworm
container_name: pgdblocal
environment:
POSTGRES_USER: dbadmin
POSTGRES_PASSWORD: admin4test
POSTGRES_DB: postgres
PGDATA: /var/lib/postgresql/data
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
- ./data:/var/lib/postgresql/data
ports:
- 5432:5432
api:
image: quarkus/quiz-api:2.0
container_name: api
depends_on:
- pgdblocal
environment:
LANG: C
ports:
- 8080:8080
EOF
docker compose up -d
- Generate the keys for signing
cd src/main/resources
openssl genrsa -out rsaPrivateKey.pem 2048
openssl rsa -pubout -in rsaPrivateKey.pem -out publicKey.pem
openssl pkcs8 -topk8 -nocrypt -inform pem -in rsaPrivateKey.pem -outform pem -out privateKey.pem