Quarkus 3 Cheatsheet (2023)
Quarkus is a popular Java framework designed to build lightweight, fast, and efficient applications. It optimizes for container-based deployment, reducing memory consumption, and offering rapid startup times. This cheat sheet provides a quick reference guide to some of the most common commands you’ll use while working with Quarkus applications.
Project setup
On-line project Initializer: https://code.quarkus.io/
Create a Quarkus basic REST project “getting-started”
quarkus create app org.acme:getting-started
Create a project using Maven
mvn io.quarkus.platform:quarkus-maven-plugin:3.2.0.Final:create
Extensions
Add / Remove extensions to a Quarkus project
# Add extension
quarkus ext add kubernetes
# Remove extension
quarkus ext rm health
List available extensions for a search pattern (e.g. hibernate extensions)
quarkus ext list -i -s hibernate
Build and Run applications
Build a Quarkus application
quarkus build
Run application in dev mode
quarkus dev
Run application in prod mode
java -jar target/quarkus-app/quarkus-run.jar
Configuration
The default configuration file is available in the folder src/main/resources/application.properties
Example: How to change the default HTTP Port and the Test Port:
quarkus.http.port=9090
quarkus.http.test-port=8083
Example YAML configuration:
quarkus:
datasource:
url: jdbc:postgresql://localhost:5432/some-database
driver: org.postgresql.Driver
How to Inject a System Property in your code:
@ConfigProperty(name = "greeting" , defaultValue="hello") String greeting;
To list all available Configuration Options check this link: https://quarkus.io/guides/all-config
Using Profiles in your configuration
#Default profile. Used if there isn't a specific active profile for this property
greeting="default"
#Dev profile. Used in dev mode
%dev.greeting="dev"
#Prod Profile. Used in prod mode
%prod.greeting="prod"
#Test Profile. Used in test mode
%test.greeting="test"
#Custom profile. Requires -Dquarkus-profile=custom
%custom.greeting="custom"
Logging
How to configure Console Logging level and a Logging Category
quarkus.log.console.level=DEBUG
quarkus.log.category."com.sample".level=DEBUG
How to enable File Logging
quarkus.log.file.enable=true
quarkus.log.file.path=/home/quarkus/logs/trace.log
quarkus.log.file.level=TRACE
Database Access
Sample configuration for H2 Database (default profile):
quarkus.datasource.jdbc.url=jdbc:mariadb://localhost:3306/mydb
quarkus.datasource.db-kind=mariadb
quarkus.datasource.username=developer
quarkus.datasource.password=developer
quarkus.hibernate-orm.database.generation=update
Sample configuration for PostgreSQL Database (prod profile)
%prod.quarkus.datasource.db-kind=postgresql
%prod.quarkus.datasource.username=quarkus_test
%prod.quarkus.datasource.password=quarkus_test
%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://localhost/quarkus_test
%prod.quarkus.datasource.jdbc.max-size=8
%prod.quarkus.datasource.jdbc.min-size=2
quarkus.hibernate-orm.database.generation=drop-and-create
quarkus.hibernate-orm.log.sql=true
quarkus.hibernate-orm.sql-load-script=import.sql
Native executable
Build a native executable application (Using Docker Image of GraalVM)
service docker start
quarkus build --native -Dquarkus.native.container-build=true
target/code-with-quarkus-1.0.0-SNAPSHOT-runner
OpenShift deployment
How to deploy an application to OpenShift using the openshift extension:
mvn quarkus:add-extension -Dextensions="openshift"
mvn clean package -Dquarkus.kubernetes.deploy=true
This cheat sheet covers some of the most common commands for working with Quarkus applications. Quarkus provides a vast array of features and capabilities, so make sure to explore the official documentation and community resources to dive deeper into the world of Quarkus development!
Recommended Articles
Optimizing Your Quarkus Application with Custom Undertow Server Settings
Learn how to customize your Quarkus application's embedded Undertow server settings. #Quarkus #Java #Middleware #CloudNative
Camel Extensions with Quarkus: Building Powerful Java Integrations
Learn how to use Camel extensions for Quarkus in this article. Explore key dependencies and build your own JSON REST service.
Quarkus Logging Configuration: A Comprehensive Guide
Learn how to configure Quarkus logging with JBoss Log Manager, a familiar process for JBoss/WildFly users. #Java #Middleware #CloudNative
Step-by-Step Guide: Coding, Deploying & Testing SOAP Web Services with Quarkus CXF Extensions
Learn how to code, deploy and test SOAP web services using Quarkus CXF Extensions. Prerequisites included.