Java / Binary
Run SWIM services directly from source using Quarkus dev mode or as a standalone Java binary. This provides the fastest feedback loop for development, with live reload on code changes.
Prerequisites
Windows: The commands below use GNU Make. Install it via
choco install make (Chocolatey) or scoop install make.
1. Install Maven Libraries
Build and install all SWIM modules to your local Maven repository:
cd swim-developer # workspace root
make install
2. Start Infrastructure
SWIM services depend on Kafka, MongoDB, and Artemis. Start them using the service's compose file:
cd applications/swim-dnotam-consumer
podman compose up -d
Alternatively, Quarkus Dev Services
can provision the required infrastructure automatically during quarkus:dev.
3. Run in Dev Mode
Quarkus dev mode starts the application with live reload. Code changes are applied automatically without restarting:
./mvnw quarkus:dev
.\mvnw.cmd quarkus:dev
The application starts on http://localhost:8080 with
health and metrics on http://localhost:9000.
4. Build and Run as Binary
Build a standalone JAR and run it independently:
# Build
./mvnw clean package -DskipTests
# Run
java -jar target/quarkus-app/quarkus-run.jar
# Build
.\mvnw.cmd clean package -DskipTests
# Run
java -jar target\quarkus-app\quarkus-run.jar
5. Build a Native Binary (Optional)
GraalVM native compilation produces a standalone binary with instant startup and minimal memory footprint:
./mvnw clean package -Dnative \
-Dquarkus.native.container-build=true \
-Dquarkus.native.container-runtime=podman
.\mvnw.cmd clean package -Dnative `
-Dquarkus.native.container-build=true `
-Dquarkus.native.container-runtime=podman
Native builds require either GraalVM installed locally or a container runtime (Podman/Docker) for in-container builds. Build time is significantly longer than JVM mode.