Episode praktik pertama: membuat project Quarkus dengan CLI, Maven, atau Gradle, memahami struktur src/main/java dan src/main/resources, menjalankan dev mode dengan live reload, serta mengelola konfigurasi dasar dan dependency.

Semua teori pada dua episode sebelumnya sekarang akan menjadi nyata. Episode 3 adalah titik awal praktik kalian: membuat project Quarkus pertama dari nol, memahami struktur direktori yang dihasilkan, menjalankan aplikasi dalam mode dev dengan live reload, dan mengelola konfigurasi serta dependency.
Pastikan environment dari episode 0 sudah siap — JDK 21, Maven, Quarkus CLI, dan Docker. Kalian juga memerlukan internet untuk mengunduh dependency Maven. Mari kita mulai!
Cara tercepat adalah memakai Quarkus CLI. Perintah quarkus create menghasilkan project lengkap dengan struktur standar:
quarkus create app com.example:belajar-quarkus
cd belajar-quarkusProject yang dibuat bernama belajar-quarkus dengan package com.example. Quarkus CLI otomatis menyertakan extension RESTEasy Reactive dan siap dijalankan.
Tanpa Quarkus CLI, gunakan Maven archetype. Sintaksnya memakai plugin quarkus-maven-plugin:
./mvnw io.quarkus.platform:quarkus-maven-plugin:3.15.0:create \
-DprojectGroupId=com.example -DprojectArtifactId=belajar-quarkusUntuk Gradle, project biasanya dibuat memakai generator code di https://code.quarkus.io atau melalui Quarkus CLI dengan flag -b gradle. Output akhirnya sama: project dengan build file dan direktori sumber.
Setelah project dibuat, struktur direktori standarnya adalah:
belajar-quarkus/
├── src/main/java/com/example/
│ └── GreetingResource.java
├── src/main/resources/
│ ├── application.properties
│ └── META-INF/resources/
├── src/test/java/com/example/
│ └── GreetingResourceTest.java
├── pom.xml
└── mvnwsrc/main/java: kode sumber Java kalian.src/main/resources: file konfigurasi dan resource statis.src/test/java: kode test (JUnit 5).pom.xml: definisi dependency dan konfigurasi build.mvnw: Maven wrapper, memungkinkan build tanpa Maven terinstall.Ini adalah pusat konfigurasi Quarkus. Formatnya key=value dan bisa memakai profile. File default hanya berisi komentar dan akan kita isi mulai episode-episode berikutnya.
Mode dev adalah cara kerja utama selama pengembangan. Jalankan:
./mvnw quarkus:devSetelah beberapa detik, kalian akan melihat output:
__ ____ __ _____ ___ __ ____ ______
--/ __ \/ / / / _ | / _ \/ //_/ / / / __/
-/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
...
Profile dev activated. Live Coding activated.
Installed features: [cdi, resteasy-reactive, ...]Aplikasi berjalan di http://localhost:8080. Buka endpoint bawaan untuk menguji:
curl http://localhost:8080/helloSekarang ubah file GreetingResource.java — misalnya ganti teks respons. Tanpa restart manual, Quarkus melakukan hot reload dan perubahan langsung aktif. Ini karena live coding teraktifasi di profile dev. Perintah ./mvnw quarkus:dev akan otomatis menunggu perubahan file.
Dependency Quarkus dikelola sebagai extension. Tambahkan extension lewat CLI atau Maven:
quarkus extension add "resteasy-reactive-jackson"
quarkus extension add "hibernate-orm-panache,jdbc-h2"
./mvnw quarkus:add-extension -Dextensions=smallrye-healthSetiap extension menambah dependency ke pom.xml dan terkadang menambah konfigurasi build. Perintah ./mvnw quarkus:add-extension -Dextensions=smallrye-health adalah cara Maven-native yang setara dengan Quarkus CLI.
Contoh konfigurasi dasar untuk aplikasi Hello World:
quarkus.http.port=8080
quarkus.http.host=0.0.0.0
quarkus.application.name=belajar-quarkus
quarkus.log.level=INFO
quarkus.log.category."com.example".level=DEBUGUbah port lalu simpan: di mode dev, konfigurasi juga ikut ter-reload. Kalian bisa mengecek seluruh property yang tersedia lewat Dev UI di http://localhost:8080/q/dev.
Episode 3 menutup fondasi praktik kalian: membuat project Quarkus dengan CLI atau Maven, memahami struktur src/main/java, src/main/resources, dan pom.xml, menjalankan aplikasi dengan ./mvnw quarkus:dev beserta live reload, serta menambah extension dan mengelola konfigurasi dasar.
Inti yang harus dibawa pulang:
quarkus create app adalah cara tercepat membuat project baru.src/main/java, src/main/resources, src/test/java../mvnw quarkus:dev mengaktifkan mode dev dengan live reload.application.properties adalah pusat konfigurasi dengan format key=value./q/dev membantu memeriksa aplikasi saat development.Di episode 4 selanjutnya kita akan membahas dependency injection dan CDI — cara kerja @Inject, scope bean seperti @ApplicationScoped dan @RequestScoped, producer dan qualifier, alternative bean, lifecycle, serta interceptor. Fondasi ini akan dipakai di hampir semua episode berikutnya.