Minimal Helidon MP project suitable to start from scratch.
With JDK17+
mvn package
java -jar target/helidon-quickstart-mp.jar
curl -X GET http://localhost:8080/simple-greet
{"message":"Hello World!"}
curl -X GET http://localhost:8080/greet
{"message":"Hello World!"}
curl -X GET http://localhost:8080/greet/Joe
{"message":"Hello Joe!"}
curl -X PUT -H "Content-Type: application/json" -d '{"greeting" : "Hola"}' http://localhost:8080/greet/greeting
curl -X GET http://localhost:8080/greet/Jose
{"message":"Hola Jose!"}
# Prometheus Format
curl -s -X GET http://localhost:8080/metrics
# TYPE base:gc_g1_young_generation_count gauge
. . .
# JSON Format
curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics
{"base":...
. . .
curl -s -X GET http://localhost:8080/health
{"outcome":"UP",...
docker build -t helidon-quickstart-mp .
docker run --rm -p 8080:8080 helidon-quickstart-mp:latest
Exercise the application as described above.
Build the custom runtime image using the jlink image profile:
mvn package -Pjlink-image
This uses the helidon-maven-plugin to perform the custom image generation. After the build completes it will report some statistics about the build including the reduction in image size.
The target/helidon-quickstart-mp-jri directory is a self contained custom image of your application. It contains your application, its runtime dependencies and the JDK modules it depends on. You can start your application using the provide start script:
./target/helidon-quickstart-mp-jri/bin/start