© VectorMine/Shutterstock.com
Das Kubernetes Native Java Framework

Quarkus auf einen Blick


Erste Schritte

Was ist Quarkus?

Quarkus ist ein Kubernetes Native Java Stack, der auf GraalVM und OpenJDK HotSpot aufbaut und Java-Programme zehnmal schneller und hundertmal kleiner macht. Quarkus verbessert die Entwickler-Produktivität durch zusätzliche Features wie Live Reloading/Debugging und Persistenz mit Panache.

Voraussetzungen

  • Java 8

  • Maven 3.5.3+ (empfohlen Maven 3.6.X)

  • GraalVM 19 oder Docker (optional für eine native Kompilierung)

Die erste Quarkus-Anwendung

Eine minimale Quarkus-Anwendung lässt sich via Maven-Ziel erstellen. Das folgende Ziel erzeugt Endpunkt, Test und Docker-Ressourcen:

mvn io.quarkus:quarkus-maven-plugin:0.18.0:create \ -DprojectGroupId=org.alexsotob \ -DprojectArtifactId=jax \ -DclassName="org.alexsotob.quickstart.GreetingResource" \ -Dpath="/hello" Quarkus im Live-Reload (Dev-)Modus starten: ./mvnw compile quarkus:dev

Endpunkt abfragen:

curl http://localhost:8080/hello

Live-Reload

Wird eine Quarkus-Anwendung im Live-Reload-Modus gestartet, werden Änderungen ohne erneutes Kompilieren oder Paketieren automatisch sichtbar. Beispiel: Ändere den Ausgabewert der Klasse src/main/java/org/alexsotob/quickstart/GreetingResource.java im Live-Reload-Modus.

Quarkus_ErsteSchritte.tif_fmt1.jpg

Packaging

Die Anweisung ./mvnw package generiert ein jar-File namens jax-1.0-SNAPSHOT-runner.jar, das die Anwendung sowie ein lib-Verzeichnis mit allen nötigen Abhängigkeiten zum Starten der Anwendung enthält. Quarkus erzeugt kein Fat-JAR, um gut mit Docker Layern zusammenarbeiten zu können. jar-File und lib-Ordner sollten im selben Directory liegen.

Um ein natives Executable zu erhalten, kann GraalVM lokal installiert werden. Mittels GraalVM lässt sich eine ausführbare Datei für die installierte Plattform erzeugen. Alternativ kann ein Docker-Container mit einem nativen Executable der Anwendung erstellt werden:

./mvnw package -Pnative -Dnative-image.docker-build=true

Danach kann der Docker-Container gebaut und gestartet werden:

docker build -f src/main/docker/Dockerfile.native -t quarkus/jax docker run -i --rm -p 8080:8080 quarkus/jax

Grundlagen

JAX-RS

RESTful Web APIs lassen sich in Quarkus mittels JAX-RS definieren:

@Path("/book") public class BookResource { @GET @Produces(MediaType.APPLICATION_JSON) public List<Book> getAllBooks() { } @POST @Produces(MediaType.APPLICATION_JSON) public Response createBook(Book book) { } @DELETE @Path("{isbn}") @Produces(MediaType.APPLICATION_JSON) public Response deleteBook(@PathParam("isbn") String isbn) { } @GET @Produces(MediaType.APPLICA...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang