Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Quarkus

Quarkus Dersleri : Uygulama Native Derleme

Paylaş

Quarkus Dersleri‘ne devam ediyoruz.

İçindekiler

  • GraalVM Kurulumu
  • Quarkus Uygulaması

Bu yazımızda Quarkus uygulamızı navite olarak derlemeyi ve çalıştırmayı göreceğiz. Quarkus’un en büyük ve en yararlı yanlarından biri olan native derleme işlemini sıkça kullanacağımı düşünerek not etmek istedim.

Quarkus projemizi native olarak derlemek ve çalıştırabilmek için GraalVM’e ihtiyacımız bulunmaktadır. Öncelikle Quarkus Native uygulama derlemek için GraalVM’i bilgisayarımıza kuralım.

GraalVM, Java’da uygulanan HotSpot / OpenJDK tabanlı bir Java VM ve JDK’dır. Hızlı başlatma ve düşük bellek alanı için Java uygulamalarının önceden derlenmesi gibi ek programlama dillerini ve yürütme modlarını destekler. wikipedia.com

GraalVM Kurulumu


Bu kurulumu Linux işletim sistemi için anlatacağım.

Öncelikle https://github.com/graalvm/graalvm-ce-builds/releases adresinden indiriyoruz. İndirdiğimiz dosyayı kuruyoruz.

tar -xzf dosyaadi.tar.gz
Code language: CSS (css)

Sonrasında ise alias olarak tanımlamalarımız yapıyoruz.

export PATH=<graalvm>/bin:$PATH export JAVA_HOME=<graalvm> export GRAALVM_HOME=$HOME/graalvm/ ##native image yüklüyoruz ${GRAALVM_HOME}/bin/gu install native-image
Code language: PHP (php)

Quarkus Uygulaması


Basit bir Quarkus uyglaması yapacağız. Bu Quarkus uygulamamızı native olarak çalıştıracağız.

Uygulamamız basit bir javax.rs uygulaması olacak.

@Path("/hello") public class ExampleResource { @GET @Produces(MediaType.TEXT_PLAIN) public String merhaba() { return "Burak KUTBAY"; } }
Code language: PHP (php)

Uygulamamızın native olarak derleneceğini maven’a bildirmemiz gerekiyor. Bunun için Quarkus paket tipi özelliğini native olarak belirteceğiz.

<profiles> <profile> <id>native</id> <properties> <quarkus.package.type>native</quarkus.package.type> </properties> </profile> </profiles>
Code language: HTML, XML (xml)

Eğer uygulamamızda bu satır varsa Quarkus projeniz navite olarak derlenmeye hazır demektir.

Quarkus uygulamamızı native olarak derlemek için kodumuzu girelim.

./mvnw package -Pnative

Quarkus uygulamamızın çıktısı aşağıdaki gibi olacaktır.

[INFO] Scanning for projects... [INFO] -----------< com.burakkutbay:quarkus-native-uygulama-ornegi >----------- [INFO] Building quarkus-native-uygulama-ornegi 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:1.10.5.Final:generate-code (default) @ quarkus-native-uygulama-ornegi --- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ quarkus-native-uygulama-ornegi --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ quarkus-native-uygulama-ornegi --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- quarkus-maven-plugin:1.10.5.Final:dev (default-cli) @ quarkus-native-uygulama-ornegi --- Listening for transport dt_socket at address: 5005 __ ____ __ _____ ___ __ ____ ______ --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ --\___\_\____/_/ |_/_/|_/_/|_|\____/___/ 2020-12-28 23:20:20,445 INFO [io.quarkus] (Quarkus Main Thread) quarkus-native-uygulama-ornegi 1.0-SNAPSHOT on JVM (powered by Quarkus 1.10.5.Final) started in 0.917s. Listening on: http://localhost:8080 2020-12-28 23:20:20,447 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2020-12-28 23:20:20,447 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy] ^C2020-12-28 23:20:31,108 INFO [io.quarkus] (Shutdown thread) quarkus-native-uygulama-ornegi stopped in 0.003s ~/quarkus-native-uygulama-ornegi  ./mvnw package -Pnative. INT ✘ 16s 23:20:31 Warning: JAVA_HOME environment variable is not set. [INFO] Scanning for projects... [INFO] [INFO] -----------< com.burakkutbay:quarkus-native-uygulama-ornegi >----------- [INFO] Building quarkus-native-uygulama-ornegi 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:1.10.5.Final:generate-code (default) @ quarkus-native-uygulama-ornegi --- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ quarkus-native-uygulama-ornegi --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 2 resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ quarkus-native-uygulama-ornegi --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- quarkus-maven-plugin:1.10.5.Final:generate-code-tests (default) @ quarkus-native-uygulama-ornegi --- [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ quarkus-native-uygulama-ornegi --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory quarkus-native-uygulama-ornegi/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ quarkus-native-uygulama-ornegi --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ quarkus-native-uygulama-ornegi --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.burakkutbay.ExampleResourceTest 2020-12-28 23:21:50,105 INFO [io.quarkus] (main) Quarkus 1.10.5.Final on JVM started in 1.448s. Listening on: http://localhost:8081 2020-12-28 23:21:50,119 INFO [io.quarkus] (main) Profile test activated. 2020-12-28 23:21:50,119 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.119 s - in com.burakkutbay.ExampleResourceTest 2020-12-28 23:21:51,553 INFO [io.quarkus] (main) Quarkus stopped in 0.046s [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ quarkus-native-uygulama-ornegi [INFO] --- quarkus-maven-plugin:1.10.5.Final:build (default) @ quarkus-native-uygulama-ornegi --- [INFO] [org.jboss.threads] JBoss Threads version 3.1.1.Final [INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building thin jar: /quarkus-native-uygulama-ornegi/target/quarkus-native-uygulama-ornegi-1.0-SNAPSHOT-runner.jar [INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 881ms [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
Code language: CSS (css)

Böylelikle Quarkus uygulamamız native olarak build edildi. Build edilen Quarkus native uygulamamız

/quarkus-native-uygulama-ornegi/target/quarkus-native-uygulama-ornegi-1.0-SNAPSHOT-runner

yolunda bulabiliriz ve Quarkus Uygulama Örneğimizi Native Derlenmiş olan programımızı çalıştırabiliriz.


Önceki Ders: Quarkus Rest Api Uygulaması Yapmak
Quarkus Dersleri
Sonraki Ders: Quarkus Panache

Tags:

Quarkus DersQuarkus DersleriQuarkus native uygulamaquarkus örnekquarkus uygulama örneği

Paylaş

Diğer Yazılar

Quarkus Dersleri Uygulama Örnekleri
Previous

Quarkus Rest Api Uygulaması Yapmak

Quarkus Dersleri Uygulama Örnekleri
Next

Quarkus Hibernate Panache Nedir? Uygulama Örneği

Next
Quarkus Dersleri Uygulama Örnekleri
04 Ocak 2021

Quarkus Hibernate Panache Nedir? Uygulama Örneği

Previews
24 Aralık 2020

Quarkus Rest Api Uygulaması Yapmak

Quarkus Dersleri Uygulama Örnekleri

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Quarkus Dersleri Uygulama Örnekleri

Quarkus Nesnelerin Yaşam Döngüsü

Quarkus Dersleri Uygulama Örnekleri

Quarkus Custom Property Kullanmak

Quarkus Dersleri Uygulama Örnekleri

Quarkus Projelerinde Fault Tolerance Kullanmak

Quarkus Dersleri Uygulama Örnekleri

Quarkus Uygulaması Başlatma ve Kapanma Döngüsünü Yakalamak

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Amazon Web Services
Vue.js
Gradle
Node.js
Android
Struts
Redis
Röportaj
Spring Data
Spring Cloud Stream
XCode
Debezium
Mikroservis Mimarisi
Video
Spring Native
iPhone Uygulama Geliştirme
Objective C
JPA
Spring Security
PostgreSQL
Apache Kafka
Git
Servlet
Yaptığım Projeler
Maven
Design Patterns
DevOps
Linux
RabbitMQ
PrimeFaces
JDBC
Spring Jdbc Template
Spring
Spring MVC
Manset
Google
Spring Cloud
OCA Java SE 8
Spring Core
Quarkus
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Eğitim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • Spring Core
  • Spring Örnekleri
  • Hibernate
  • Java Server Pages
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • Java 8
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale