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 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.jar.type=uber-jar
The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar
.
- Tested and Performed on Jenkins Automation server Instance deployed on an openshift cluster.
- Part of the stages using 'jenkins-agent-podman' , a container image agent with podman binary, Dockerfile that agent image was built from is here
- Every pushed change triggers the pipeline run using github
pre-push
hook that takes places just before the push of new content to remote repo, you can see the hook script here - in order to work, need to place it in root of local repository in relative path.git/hooks/pre-push
- The CI/CD Pipeline itself defined in
Jenkinsfile
located here - Curated Plugins needed to be installed in jenkins in order to run the pipeline ( few of them pre-installed by default:
- Tested Performed with github actions , the workflow yaml definition is here
- The target openshift cluster is the same cluster where jenkins is deployed.
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/games-store-service-1.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.
- OpenShift (guide): Generate OpenShift resources from annotations
- REST (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
- MongoDB with Panache (guide): Simplify your persistence code for MongoDB via the active record or the repository pattern
- REST Client (guide): Call REST services
- OpenTelemetry (guide): Use OpenTelemetry to trace services
Create your first JPA entity
Start to code with the OpenAPI Generator extension.
If you do not have added the io.quarkus:quarkus-rest-client-jackson
or io.quarkus:quarkus-rest-client-reactive-jackson
extension in your project, add it first:
Remember, you just need to add one of them, depending on your needs.
Quarkus CLI:
quarkus ext add io.quarkus:quarkus-rest-client-jackson
Maven:
./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-rest-client-jackson"
Gradle:
./gradlew addExtension --extensions="io.quarkus:quarkus-rest-client-jackson"
or
Quarkus CLI:
quarkus ext add io.quarkus:quarkus-rest-client-reactive-jackson
Maven:
./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-rest-client-reactive-jackson"
Gradle:
./gradlew addExtension --extensions="io.quarkus:quarkus-rest-client-reactive-jackson"
Invoke different services through REST with JSON
Easily start your REST Web Services