Here is a simple cheatsheet that will help you as reference guide to build your Quarkus applications. To learn how to install the Quarkus CLI we recommend to read this article: What’s new with Quarkus 2.0 and how to get started quickly).
Project setup
On-line project creator: https://code.quarkus.io/
Create a Quarkus basic REST project named “code-with-quarkus”
quarkus create
Create a Quarkus project using a specific BOM version:
quarkus create -P io.quarkus.platform:quarkus-bom:2.7.1.Final
Create a project using the Maven GAV com.foo:bar:1.0
quarkus create app com.foo:bar:1.0
Create a project using a Template:
#create a CLI project quarkus create cli #create an extension project quarkus create extension
Add / Remove extensions to a Quarkus project
# Add extension quarkus ext add kubernetes health # Remove extension quakus ext rm health
List available extensions for a search pattern (e.g. hibernate extensions)
quarkus ext list -i -s hibernate
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:
quarkus.http.port=9090
To Inject a System Property in your code, use the following annotation:
@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"
Database Access
Sample configuration for H2 Database (default profile):
quarkus.datasource.db-kind=h2 quarkus.datasource.jdbc.url=jdbc:h2:mem:school-timetabling;DB_CLOSE_DELAY=-1 quarkus.hibernate-orm.database.generation=drop-and-create
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