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:
./gradlew quarkusDevWindows: gradlew quarkusDev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
→ Swagger-UI: http://localhost:8080/q/swagger-ui/
The application can be packaged using:
./gradlew buildIt produces the quarkus-run.jar file in the build/quarkus-app/ directory.
Be aware that it’s not an über-jar as the dependencies are copied into the build/quarkus-app/lib/ directory.
If you want to build an über-jar, execute the following command:
./gradlew build -Dquarkus.package.type=uber-jarThe application is now runnable using java -jar build/quarkus-app/quarkus-run.jar.
Make sure, GraalVM & native-image is installed: gu install native-image
You can create a native executable using:
./gradlew build -Dquarkus.package.type=nativeOr, if you don't have GraalVM installed, you can run the native executable build in a container using (producing a Linux executable):
./gradlew build build -Dquarkus.package.type=native -Dquarkus.native.container-build=trueYou can then execute your native executable with: ./build/**runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling.
build-it-yourself:
docker-compose up --buildpre-built:
docker run --rm --name="quarkus-tryout" -p 8080:8080 ghcr.io/d-led/quarkus-tryout:master↓ http://localhost:8080/hello/multiply?a=11&b=32
- run all the tests:
gradle test - run all tests marked to be run in native mode
(no injection
due to the compilation mode):
gradle testNative - mutation testing:
gradle pitest→ open build/reports/pitest/index.html →Replaced integer multiplication with addition → SURVIVED→ adding another test case for a full mutation coverage → ok - property-based testing:
gradle jqwik --info→Property [MathsProperties:multiplying positive numbers returns positive number] failed with sample {0=3379, 1=635539} - try out the endpoint:
gradle quarkusDev→ http://localhost:8080/hello/multiply?a=11&b=3
- RESTEasy JAX-RS (guide): REST endpoint framework implementing JAX-RS and more
Easily start your RESTful Web Services
mvn io.quarkus:quarkus-maven-plugin:2.0.3.Final:create \
-DprojectGroupId=com.github.d.led \
-DprojectArtifactId=quarkus-tryout \
-DprojectVersion=0.0.1 \
-DclassName="com.github.d.led.controllers.Tryout" \
-Dextensions="resteasy,resteasy-jackson" \
-DbuildTool=gradle