Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Talofa tagata uma i luga o lenei blog, o le fa'ailoga lona fa i le Quarkus series!

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Post muamua e uiga i le auala e tuʻufaʻatasia ai e Quarkus le MicroProfile ma le Spring. Sei matou faamanatu atu lena mea quarkus o loʻo faʻatulagaina e pei o le "ultra-fast subatomic Java", ae o le "Kubernetes-oriented Java stack, faʻatulagaina mo GraalVM ma OpenJDK HotSpot ma faʻapotopoto mai faletusi sili ma tulaga masani." I aso nei o le a tatou faʻaalia pe faʻafefea ona faʻaonaponei faʻaoga Java o loʻo i ai nei e faʻaaoga ai le gafatia o Quarkus, faʻaaoga le faʻataʻitaʻiga helloworld talosaga mai le Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart repository, lea e fa'aogaina ai le CDI ma le Servlet 3 tekonolosi e lagolagoina e Quarkus.

E taua le maitauina iinei o Quarkus ma JBoss EAP o loʻo faʻamamafaina le faʻaaogaina o meafaigaluega e faʻatatau i tulaga faʻavae pe a mafai. E leai se talosaga e fa'aoga ile JBoss EAP? Leai se faʻafitauli, e mafai ona faigofie ona faimalaga mai lau 'auʻaunaga o loʻo iai nei ile JBoss EAP faʻaaoga Red Hat Application Migration Toolkit. A mae'a, o le a maua le fa'amaumauga mulimuli ma le galue o le code fa'aonaponei i totonu o le fale teu oloa github.com/mrizzi/jboss-eap-quickstarts/tree/quarkus, i totonu o le module lalolagi.

A o tusia lenei pou sa matou faʻaaogaina Quarkus a'oa'oga, tele Fausia lau Talosaga Muamua ma le Fale a Native Executable.

Tatou maua le code

Muamua, se'i o tatou faia se clone i le lotoifale o le fale teu oloa JBoss EAP vave amata:

$ git clone https://github.com/jboss-developer/jboss-eap-quickstarts.git
Cloning into 'jboss-eap-quickstarts'...
remote: Enumerating objects: 148133, done.
remote: Total 148133 (delta 0), reused 0 (delta 0), pack-reused 148133
Receiving objects: 100% (148133/148133), 59.90 MiB | 7.62 MiB/s, done.
Resolving deltas: 100% (66476/66476), done.
$ cd jboss-eap-quickstarts/helloworld/

Se'i o tatou va'ai pe fa'apefea ona galue le helloworld muamua

O le mea moni, o le aano o lenei talosaga e manino mai le igoa, ae o le a matou faʻafouina lona tulafono faʻasaienisi. O le mea lea, muamua, seʻi o tatou vaʻavaʻai i lenei talosaga i lona tulaga muamua.

Fa'aogaina helloworld

1. Tatala se laina ma alu i le aʻa o le faila JBoss EAP (e mafai ona e sii maia iinei), o lona uiga, i le faila EAP_HOME.

2. Fa'alauiloa le JBoss EAP server fa'atasi ai ma le fa'ailoga fa'aletonu:

$ EAP_HOME/bin/standalone.sh

Manatua: I luga o Windows, o le EAP_HOMEbinstandalone.bat tusitusiga e faʻaaoga e faʻalauiloa ai.

A maeʻa ni nai sekone, e tatau ona aliali mai se mea faʻapenei i totonu o le ogalaau:

[org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.2.0.GA (WildFly Core 6.0.11.Final-redhat-00001) started in 3315ms - Started 306 of 527 services (321 services are lazy, passive or on-demand)

3. Tatala i se su'esu'ega 127.0.0.1:8080 ma matou vaʻai i le mea lenei:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 1. JBoss EAP Itulau Aiga.

4. Mulimuli i faatonuga i le tusi lesona Fausia ma Fa'atino le Amata vave: faʻalautele le helloworld ma tamoe (mai le faila aʻa o le poloketi) le poloaiga lenei:

$ mvn clean install wildfly:deploy

A maeʻa le faʻatinoina o lenei poloaiga, o le a tatou vaʻai i se mea e pei o loʻo i lalo i le ogalaau:

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 8.224 s

O lea la, o le faʻapipiʻiina muamua o le helloworld application ile JBoss EAP na ova atu ile 8 sekone.

Su'ega helloworld

Faia sa'o e tusa ai ma faatonuga Avanoa i le Talosaga, tatala i le browser 127.0.0.1:8080/helloworld ma matou va'ai i le mea lenei:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 2. Original Hello World mai le JBoss EAP.

Faia o suiga

Suia le fa'ailoga fa'aoga createHelloMessage(Igoa fa'aigoa) mai le Lalolagi i Marco:

writer.println("<h1>" + helloService.createHelloMessage("Marco") + "</h1>");

Toe fai le poloaiga lenei:

$ mvn clean install wildfly:deploy

Ona matou faʻafouina lea o le itulau i le suʻega ma vaʻai ua suia le tusitusiga:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 3. Talofa Marco i le JBoss EAP.

Toe foʻi i tua le faʻaogaina o le helloworld ma tapuni le JBoss EAP

Ole filifiliga lea, ae afai e te manaʻo e faʻamalo le faʻapipiʻiina, e mafai ona e faia i le poloaiga lenei:

$ mvn clean install wildfly:undeploy

Ina ia tapunia lau faʻataʻitaʻiga JBoss EAP, naʻo le oomi Ctrl + C i le faʻamalama faʻamalama.

Fa'aleleia helloworld

Ia tatou fa'aonaponei le ulua'i talosaga helloworld.

Fausia se lala fou

Matou te fatuina se lala faigaluega fou pe a maeʻa le poloketi amata vave:

$ git checkout -b quarkus 7.2.0.GA

Suia le faila pom.xml

O le a amata ona matou suia le talosaga mai le faila pom.xml. Ina ia faʻatagaina Quarkus e faʻapipiʻi poloka XML i totonu, faʻataʻitaʻi le poloaiga lenei i le helloworld folder:

$ mvn io.quarkus:quarkus-maven-plugin:0.23.2:create

A'o tusia lenei tusiga, sa fa'aogaina le version 0.23.2. E masani ona faʻasalalau e Quarkus ni faʻamatalaga fou, e mafai ona e suʻeina poʻo fea faʻamatalaga e sili ona lata mai i luga o le upega tafaʻilagi github.com/quarkusio/quarkus/releases/latest.

O le faʻatonuga o loʻo i luga o le a faʻaofiina elemene nei i le pom.xml:

  • Meatotino , o loʻo faʻamaonia ai le faʻasologa o Quarkus e faʻaaoga.
  • Poloka e fa'aulufale mai Quarkus BOM (pepa o meafaitino), ina ia le fa'aopoopoina se fa'amatalaga mo fa'amoemoega ta'itasi a Quarkus.
  • O le quarkus-maven-plugin e nafa ma le afifiina o le talosaga ma le tuʻuina atu o le atinaʻe.
  • Le talaaga fa'ale-aganu'u mo le fatuina o mea e mafai ona fa'atinoina.

E le gata i lea, matou te faia ma le lima suiga nei i le pom.xml:

  1. Toso ese le pine mai le poloka ma tuu i luga o le pine . Aua o le isi laasaga o le a tatou aveese le poloka , ona tatau lea ona e sefe .
  2. Aveese se poloka , aua a tamoʻe ma Quarkus, o lenei talosaga o le a le toe manaʻomia se matua pom mai le JBoss.
  3. Fa'aopoopo se fa'ailoga ma tuu i lalo o le pine . E mafai ona e faʻamaonia le numera o le faʻasologa e te manaʻo ai.
  4. Aveese le pine , talu ai o lenei talosaga e le o toe avea ma WAR, ae o se JAR masani.
  5. Matou te suia fa'alagolago nei:
    1. Suia le fa'alagolago javax.enterprise:cdi-api ile io.quarkus:quarkus-arc, aveese saunia , talu ai (e tusa ai ma le docs) o lenei faʻaopoopoga Quarkus e tuʻuina atu ai le tui o CDI faʻalagolago.
    2. Suia le fa'alagolago org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec ile io.quarkus:quarkus-undertow, aveese saunia , aua (e tusa ai ma le docs) o lenei faʻaopoopoga Quarkus e maua ai le lagolago mo servlets.
    3. Matou te aveese le fa'alagolago org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec talu ai e sau ma fa'alagolago na matou suia.

O lo'o iai le fa'asologa o le faila pom.xml ma suiga uma i github.com/mrizzi/jboss-eap-quickstarts/blob/quarkus/helloworld/pom.xml.

Manatua o le mvn io.quarkus:quarkus-maven-plugin:0.23.2:faia le poloaiga i luga e le gata e suia ai le faila pom.xml, ae faʻaopoopoina foi se numera o vaega i le poloketi, e pei o faila ma faila nei:

  • O le faila mvnw ma le mvnw.cmd ma le faila .mvn: Maven Wrapper e mafai ai ona e faʻatautaia galuega faatino a Maven o se Maven version e aunoa ma le faʻapipiʻiina o lena lomiga.
  • Docker folder (i le src/main/ directory): O loʻo iai faʻataʻitaʻiga Dockerfiles mo faʻataʻitaʻiga masani ma le jvm (faʻatasi ai ma le faila .dockerignore).
  • Punaoa faila (i le src/main/ directory): O loʻo i ai se faila application.properties gaogao ma se faʻataʻitaʻiga Quarkus index.html itulau amata (silasila i le Run the modernized helloworld mo nisi faʻamatalaga).

Tatala helloworld
Ina ia faʻataʻitaʻiina le talosaga, matou te faʻaogaina quarkus:dev, lea e faʻalauiloa ai le Quarkus i le atinaʻe tulaga (mo nisi faʻamatalaga, vaʻai i lenei vaega i le tusi lesona. Faiga Atina'e).

Manatua: O lenei laasaga o le a faʻamoemoe e iʻu ai i se mea sese, talu ai matou te leʻi faia uma suiga talafeagai.

Sei o tatou taʻavale le poloaiga e vaʻai pe faʻapefea ona galue:

$ ./mvnw compile quarkus:dev
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< org.jboss.eap.quickstarts:helloworld >----------------
[INFO] Building Quickstart: helloworld quarkus
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloworld ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloworld ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- quarkus-maven-plugin:0.23.2:dev (default-cli) @ helloworld ---
Listening for transport dt_socket at address: 5005
INFO  [io.qua.dep.QuarkusAugmentor] Beginning quarkus augmentation
INFO  [org.jbo.threads] JBoss Threads version 3.0.0.Final
ERROR [io.qua.dev.DevModeMain] Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.jboss.as.quickstarts.helloworld.HelloService and qualifiers [@Default]
	- java member: org.jboss.as.quickstarts.helloworld.HelloWorldServlet#helloService
	- declared on CLASS bean [types=[javax.servlet.ServletConfig, java.io.Serializable, org.jboss.as.quickstarts.helloworld.HelloWorldServlet, javax.servlet.GenericServlet, javax.servlet.Servlet, java.lang.Object, javax.servlet.http.HttpServlet], qualifiers=[@Default, @Any], target=org.jboss.as.quickstarts.helloworld.HelloWorldServlet]
	at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:841)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:214)
	at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:106)
	at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:249)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at io.quarkus.deployment.ExtensionLoader$1.execute(ExtensionLoader.java:780)
	at io.quarkus.builder.BuildContext.run(BuildContext.java:415)
	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2011)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1535)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1426)
	at java.lang.Thread.run(Thread.java:748)
	at org.jboss.threads.JBossThread.run(JBossThread.java:479)
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.jboss.as.quickstarts.helloworld.HelloService and qualifiers [@Default]
	- java member: org.jboss.as.quickstarts.helloworld.HelloWorldServlet#helloService
	- declared on CLASS bean [types=[javax.servlet.ServletConfig, java.io.Serializable, org.jboss.as.quickstarts.helloworld.HelloWorldServlet, javax.servlet.GenericServlet, javax.servlet.Servlet, java.lang.Object, javax.servlet.http.HttpServlet], qualifiers=[@Default, @Any], target=org.jboss.as.quickstarts.helloworld.HelloWorldServlet]
	at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:428)
	at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:371)
	at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:206)
	... 14 more

O lea, e le aoga ... Aisea?

O le UnsatisfiedResolutionException e faasino i le vasega HelloService, o se sui o le vasega HelloWorldServlet (tagata java: org.jboss.as.quickstarts.helloworld.HelloWorldServlet#helloService). O le faʻafitauli o le HelloWorldServlet e manaʻomia se injected instance of HelloService, ma e le mafai ona maua (e ui lava o nei vasega e lua o loʻo i totonu o le afifi e tasi).

Ua oo i le taimi e toe foi ai i fa'amaumauga ma faitau pe faapefea ona galue i Quarkus Fa tui, ma o lea Tulaga ma Fa'alagolago (CDI). O lea, tatala le Contexts and Dependency Injection guide ma i le vaega Su'esu'ega o Pi tatou te faitau ai: “O se vasega o fatu pi e leai se faʻamatalaga e faʻamalamalama ai pi e leʻo suʻeina."

Sei o tatou tilotilo i le vasega HelloService - e matua leai lava se faʻamatalaga faapena. O le mea lea, e tatau ona faʻaopoopo ina ia mafai e Quarkus ona suʻe ma maua le pi. Ma talu ai o lenei mea o se mea e leai se mea, e faigofie ona tatou faʻaopoopo le @ApplicationScoped faʻamatalaga pei o lenei:

@ApplicationScoped
public class HelloService {

Manatua: O iinei e mafai e le siosiomaga atinaʻe ona fai atu ia te oe e faʻaopoopo le afifi manaʻomia (silasila i le laina i lalo), ma e tatau ona e faia ma le lima, pei o lenei:

import javax.enterprise.context.ApplicationScoped;

Afai o loʻo e masalosalo pe o le a le lautele e tatau ona faʻaogaina i le tulaga pe a le o faʻamaonia mo le puna puna, faitau le faʻamaumauga JSR 365: Tulaga ma le Fa'alagolago mo le Java 2.0—Aoao masani..

O lea ua matou toe taumafai e faʻalauiloa le talosaga ma le poloaiga ./mvnw compile quarkus: dev:

$ ./mvnw compile quarkus:dev
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< org.jboss.eap.quickstarts:helloworld >----------------
[INFO] Building Quickstart: helloworld quarkus
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloworld ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloworld ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/mrizzi/git/forked/jboss-eap-quickstarts/helloworld/target/classes
[INFO]
[INFO] --- quarkus-maven-plugin:0.23.2:dev (default-cli) @ helloworld ---
Listening for transport dt_socket at address: 5005
INFO  [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation
INFO  [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 576ms
INFO  [io.quarkus] (main) Quarkus 0.23.2 started in 1.083s. Listening on: http://0.0.0.0:8080
INFO  [io.quarkus] (main) Profile dev activated. Live Coding activated.
INFO  [io.quarkus] (main) Installed features: [cdi]

O lea e alu mea uma e aunoa ma ni mea sese.

Fa'alauiloa le helloworld fa'aonaponei
E pei ona tusia i le ogalaau, tatala i le browser 0.0.0.0: 8080 (le itulau amata ole Quarkus) ma matou vaʻai i le mea lenei:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 4. Itulau amata ole Quarkus dev.

O le WebServlet faʻamatalaga mo lenei talosaga o loʻo i ai le faʻamatalaga o loʻo i lalo:

@WebServlet("/HelloWorld")
public class HelloWorldServlet extends HttpServlet {

O le mea lea, matou te o atu i le browser i 0.0.0.0:8080/HelloWorld ma matou va'ai i mea nei:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 5: Le itulau o le Quarkus dev mo le talosaga Talofa World.

Ia, e aoga mea uma.

Sei o tatou faia suiga i le code. Manatua o le ./mvnw compile quarkus:dev poloaiga o loʻo faʻaauau pea ma e leai so matou faʻamoemoe e taofi. Sei o tatou taumafai e faʻaoga tutusa - e matua le taua lava - suiga i le code lava ia ma vaʻai pe faʻafefea ona faʻafaigofie e Quarkus le olaga mo le tagata atiaʻe:

writer.println("<h1>" + helloService.createHelloMessage("Marco") + "</h1>");

Faasaoina le faila ona toe faʻafouina lea o le itulau web e vaʻai Hello Marco, e pei ona faʻaalia i le faʻamalama i lalo:

Quarkus: Fa'aonaponei Fa'aoga Fa'aaoga Helloworld e fai ma Fa'ata'ita'iga mai le JBoss EAP Quickstart

Alaisa. 6. Talofa Marco itulau i Quarkus dev.

Sei o tatou siaki le gaioiga i le laina:

INFO  [io.qua.dev] (vert.x-worker-thread-3) Changed source files detected, recompiling [/home/mrizzi/git/forked/jboss-eap-quickstarts/helloworld/src/main/java/org/jboss/as/quickstarts/helloworld/HelloWorldServlet.java]
INFO  [io.quarkus] (vert.x-worker-thread-3) Quarkus stopped in 0.003s
INFO  [io.qua.dep.QuarkusAugmentor] (vert.x-worker-thread-3) Beginning quarkus augmentation
INFO  [io.qua.dep.QuarkusAugmentor] (vert.x-worker-thread-3) Quarkus augmentation completed in 232ms
INFO  [io.quarkus] (vert.x-worker-thread-3) Quarkus 0.23.2 started in 0.257s. Listening on: http://0.0.0.0:8080
INFO  [io.quarkus] (vert.x-worker-thread-3) Profile dev activated. Live Coding activated.
INFO  [io.quarkus] (vert.x-worker-thread-3) Installed features: [cdi]
INFO  [io.qua.dev] (vert.x-worker-thread-3) Hot replace total time: 0.371s

O le toe faʻafouina o le itulau na faʻaalia ai le suʻesuʻeina o suiga i le faʻailoga puna, ma otometi lava ona faia e Quarkus se faiga taofi-amata. Ma o nei mea uma na maeʻa i le na o le 0.371 sekone (o le mea lea, o le "Subatomic Java ultra-fast").

Fausia helloworld i totonu o se pusa JAR
O lea la ua galue le code e pei ona tatau ai, seʻi o tatou afifiina i le poloaiga lenei:

$ ./mvnw clean package

O lenei poloaiga e fausia ai faila JAR e lua i totonu o le /target folder: le helloworld-.jar file, o se mea masani masani na tuufaatasia e le Maven team faatasi ai ma vasega ma punaoa a le poloketi. Ma le faila helloworld-runner.jar, o se JAR e mafai ona faʻatinoina.

Faamolemole ia matau e le o se uber-jar, talu ai o faʻalagolago uma e naʻo le kopiina i totonu o le /target/lib folder (e le o afifiina i se faila JAR). O le mea lea, ina ia mafai ona faʻatautaia lenei JAR mai se isi faila poʻo luga o se isi talimalo, e tatau ona e kopi uma le JAR faila lava ia ma le / lib faila iina, ona o le Vasega-Ala elemene i le MANIFEST.MF faila i le pusa JAR o loʻo i ai. se lisi manino o JARs mai lib folders
Ina ia aʻoaʻo pe faʻafefea ona fai talosaga uber-jar, faʻamolemole vaʻai i le aʻoaʻoga Uber-Jar Foafoaga.

Tatala helloworld afifi i le JAR

Ole taimi nei e mafai ona tatou faʻatautaia la tatou JAR e faʻaaoga ai le tulafono java masani:

$ java -jar ./target/helloworld-<version>-runner.jar
INFO  [io.quarkus] (main) Quarkus 0.23.2 started in 0.673s. Listening on: http://0.0.0.0:8080
INFO  [io.quarkus] (main) Profile prod activated.
INFO  [io.quarkus] (main) Installed features: [cdi]

A maeʻa uma nei mea, alu i lau suʻega ile 0.0.0.0:8080 ma siaki pe lelei mea uma e pei ona tatau ai.

Tu'ufa'atasia helloworld i totonu o se faila fa'atinoina

O lea la, o le tatou helloworld e faʻatautaia e avea o se Java tutoʻatasi e faʻaaoga ai le faʻalagolago o Quarkus. Ae e mafai ona e alu atili ma liliu i totonu o se faila faʻatinoina masani.

Faʻapipiʻi GraalVM
Muamua lava, mo lenei mea e te manaʻomia faʻapipiʻi meafaigaluega manaʻomia:

1. Download GraalVM 19.2.0.1 mai github.com/oracle/graal/releases/tag/vm-19.2.0.1.

2. Fa'alautele le fa'amaumauga na siiina mai:

$ tar xvzf graalvm-ce-linux-amd64-19.2.0.1.tar.gz

3. Alu i le faila untar.

4. Fa'atonu le fa'atonuga o lo'o i lalo e sii mai ai ma fa'aopoopo le ata moni:

$ ./bin/gu install native-image

5. Resitala le faila na faia i le Laasaga 2 i le suiga ole siosiomaga GRAALVM_HOME:

$ export GRAALVM_HOME={untar-folder}/graalvm-ce-19.2.0.1)

Mo nisi fa'amatalaga ma fa'atonuga fa'apipi'i i isi OS, va'ai le tusi lesona Fausiaina o se Fa'atonu Fa'atosina—O mea e mana'omia muamua.

Fausia le helloworld i totonu o se faila fa'atinoina
Faitauina o le tusi lesona Fausiaina o se Native Executable—Fausiaina o se tagata e mafai ona faatino: "Ia tatou fatuina se faila faila faʻapitoa mo la tatou talosaga e faʻaitiitia ai lona taimi faʻalauiloa ma le tele o le disk. O le faila faila o le ai ai mea uma e manaʻomia e faʻatino ai le talosaga, e aofia ai le JVM (poʻo se mea, o se faʻasologa o le faʻasologa, o loʻo i ai naʻo mea e manaʻomia e faʻatino ai le talosaga) ma la matou talosaga lava ia.

Ina ia fatuina se faila faʻaogaina faʻapitoa, e te manaʻomia le faʻatagaina o le faʻamatalaga masani a Maven:

$ ./mvnw package -Pnative

E tasi le minute ma le 10 sekone le matou faufale, ma o le faila mulimuli o le helloworld-runner f na faia i le /target folder.

Fa'agaoioi le helloworld fa'atinoina

I le laasaga muamua, na matou mauaina le faila faila /target/helloworld-runner. Se'i o tatou fa'agasolo nei:

$ ./target/helloworld-<version>-runner
INFO  [io.quarkus] (main) Quarkus 0.23.2 started in 0.006s. Listening on: http://0.0.0.0:8080
INFO  [io.quarkus] (main) Profile prod activated.
INFO  [io.quarkus] (main) Installed features: [cdi]

Toe tatala i le browser 0.0.0.0:8080 ma siaki pe lelei mea uma e pei ona tatau ai.

Ia toe faauau!

Matou te talitonu o le auala o le faʻafouina o Java talosaga e faʻaaoga ai le malosi o Quarkus o loʻo talanoaina i lenei pou (e ui o le faʻaaogaina o se faʻataʻitaʻiga faigofie) e tatau ona faʻaaogaina i le olaga moni. I le faia o lea mea, atonu o le ae feagai ma le tele o faʻafitauli, lea o le a tatou talanoaina i le isi pou, lea o le a tatou talanoa ai pe faʻafefea ona fuaina le taumafaina o le mafaufau e iloilo ai le faʻaleleia atili o faʻatinoga, o se vaega taua o le faagasologa atoa o le faʻafouina o talosaga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga