Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Halo a h-uile duine air a’ bhlog seo, seo an ceathramh post san t-sreath Quarkus!

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Post roimhe Bha e mu dheidhinn mar a bhios Quarkus a’ cothlamadh MicroProfile agus Spring. Leig leinn sin a chuimhneachadh Cuarcus air a shuidheachadh mar “Java subatomic ultra-luath”, aka “Kubernetes-oriented Java stack, air a dhealbhadh airson GraalVM agus OpenJDK HotSpot agus air a chruinneachadh bho na leabharlannan agus inbhean as fheàrr.” An-diugh seallaidh sinn mar a dh’ ùraicheas sinn na h-aplacaidean Java a th’ ann mar-thà a’ cleachdadh comasan Quarkus, a’ cleachdadh an eisimpleir tagraidhean helloworld bho Àrd-ùrlar Iarrtas Iomairt Red Hat JBoss (JBoss EAP) Quickstart, a bhios a’ cleachdadh teicneòlasan CDI agus Servlet 3 le taic bho Quarkus.

Tha e cudromach toirt fa-near an seo gu bheil an dà chuid Quarkus agus JBoss EAP a’ cur cuideam air cleachdadh innealan a tha cho stèidhichte air inbhean sa ghabhas. Nach eil tagradh agad a’ ruith air JBoss EAP? Gun duilgheadas sam bith, faodar a ghluasad gu furasta bhon t-seirbheisiche tagraidh gnàthach agad gu JBoss EAP a ’cleachdadh Inneal-imrich Iarrtas Red Hat. Às deidh sin bidh an dreach deireannach agus obrach den chòd ùr-nodha ri fhaighinn san stòr github.com/mrizzi/jboss-eap-quickstarts/tree/quarkus, anns a 'mhodal Hàlo a Shaoghail.

Nuair a bha sinn a’ sgrìobhadh na dreuchd seo chleachd sinn Leabhar quarkus, sa mhòr-chuid A 'cruthachadh a' chiad iarrtas agad agus Togalach a Gnìomhach Dùthchasach.

Gheibh sinn an còd

An toiseach, cruthaichidh sinn clon ionadail den stòr Tòisichidh luath JBoss EAP:

$ 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/

Chì sinn mar a tha an saoghal hello tùsail ag obair

Gu fìrinneach, tha brìgh an tagraidh seo soilleir bhon ainm, ach ùraichidh sinn a chòd gu teann saidheansail. Mar sin, an toiseach, leig dhuinn sùil a thoirt air an tagradh seo anns a’ chruth thùsail aige.

A ' cleachdadh helloworld

1. Fosgail terminal agus rach gu freumh am pasgan JBoss EAP (faodaidh tu a luchdachadh sìos an seo), is e sin, dhan phasgan EAP_HOME.

2. Cuir air bhog am frithealaiche JBoss EAP leis a 'phròifil bunaiteach:

$ EAP_HOME/bin/standalone.sh

Note: Air Windows, thèid an sgriobt EAP_HOMEbinstandalone.bat a chleachdadh airson a chuir air bhog.

Às deidh diog no dhà, bu chòir rudeigin mar seo nochdadh sa loga:

[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. Fosgail ann am brabhsair 127.0.0.1:8080 agus chì sinn seo:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 1. Duilleag-dhachaigh JBoss EAP.

4. Lean an stiùireadh anns an leabhar-làimhe Tog agus cuir an gnìomh an Quickstart: leudaich helloworld agus ruith (bho phasgan freumh a’ phròiseict) an àithne a leanas:

$ mvn clean install wildfly:deploy

Às deidh dhuinn an àithne seo a chuir an gnìomh gu soirbheachail, chì sinn rudeigin mar a leanas sa loga:

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

Mar sin, thug a’ chiad cleachdadh den tagradh helloworld air JBoss EAP beagan a bharrachd air 8 diogan.

A ' dèanamh deuchainn air helloworld

Ag obair gu teann a rèir an stiùiridh Faigh cothrom air an Iarrtas, fosgail sa bhrobhsair 127.0.0.1:8080/helloworld agus chì sinn seo:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 2. Hello World tùsail bho JBoss EAP.

A’ dèanamh atharrachaidhean

Atharraich am paramadair cuir a-steach cruthaichHelloMessage (ainm sreang) bho World gu Marco:

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

Ruith an òrdugh a leanas a-rithist:

$ mvn clean install wildfly:deploy

An uairsin bidh sinn ag ùrachadh na duilleige sa bhrobhsair agus chì sinn gu bheil an teacsa air atharrachadh:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 3. Halo Marco ann an JBoss EAP.

Rol air ais cleachdadh helloworld agus dùin sìos JBoss EAP

Tha seo roghainneil, ach ma tha thu airson an cleachdadh a chuir dheth, faodaidh tu sin a dhèanamh leis an òrdugh a leanas:

$ mvn clean install wildfly:undeploy

Gus an t-eisimpleir JBoss EAP agad a dhùnadh, dìreach brùth Ctrl + C san uinneag crìche.

Luchdaich a-nuas helloworld

A-nis ùraich sinn an tagradh helloworld tùsail.

Cruthaich meur ùr

Bidh sinn a’ cruthachadh meur obrach ùr às deidh don phròiseact quickstart a bhith deiseil:

$ git checkout -b quarkus 7.2.0.GA

Ag atharrachadh am faidhle pom.xml

Tòisichidh sinn ag atharrachadh an tagraidh bhon fhaidhle pom.xml. Gus leigeil le Quarkus blocaichean XML a chuir a-steach ann, ruith an àithne a leanas ann am pasgan helloworld:

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

Nuair a bha mi a’ sgrìobhadh an artaigil seo, chaidh dreach 0.23.2 a chleachdadh. Bidh Quarkus gu tric a 'leigeil a-mach dreachan ùra, gheibh thu a-mach dè an dreach as ùire air an làrach-lìn github.com/quarkusio/quarkus/releases/as ùire.

Cuiridh an àithne gu h-àrd na h-eileamaidean a leanas a-steach do pom.xml:

  • Seilbh , a tha a 'sònrachadh an dreach de Quarkus a chleachdadh.
  • Bloc gus Quarkus BOM (bile stuthan) a thoirt a-steach, gus nach cuir thu dreach airson gach eisimeileachd Quarkus.
  • Tha an quarkus-maven-plugin an urra ri bhith a’ pacadh an tagraidh agus a’ toirt seachad modh leasachaidh.
  • Am pròifil dhùthchasach airson a bhith a’ cruthachadh gnìomhan tagraidh.

A bharrachd air an sin, bidh sinn le làimh a’ dèanamh na h-atharrachaidhean a leanas air pom.xml:

  1. A 'tarraing a-mach an tag bhon bhloc agus cuir e os cionn an taga . Oir anns an ath cheum bheir sinn air falbh am bloca , an uairsin feumaidh tu a shàbhaladh .
  2. A 'toirt air falbh bloc , oir nuair a bhios e a’ ruith le Quarkus, cha bhith feum aig an aplacaid seo tuilleadh air pàrant pom bho JBoss.
  3. Cuir taga ris agus cuir e fon chlib . Faodaidh tu an àireamh tionndaidh a tha thu ag iarraidh a shònrachadh.
  4. A 'toirt air falbh an taga , leis nach e WAR a th’ anns an tagradh seo tuilleadh, ach JAR cunbhalach.
  5. Bidh sinn ag atharrachadh nan eisimeileachd a leanas:
    1. Atharraich an eisimeileachd javax.enterprise:cdi-api gu io.quarkus:quarkus-arc, a’ toirt air falbh air a thoirt seachad , oir (a rèir na docaichean) tha an leudachadh Quarkus seo a’ toirt seachad in-stealladh de eisimeileachd CDI.
    2. Atharraich an eisimeileachd org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec gu io.quarkus:quarkus-undertow, a’ toirt air falbh air a thoirt seachad , oir (a rèir na docaichean) tha an leudachadh Quarkus seo a’ toirt taic dha servlets.
    3. Bheir sinn air falbh an eisimeileachd org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec leis gu bheil e a’ tighinn leis na h-eisimeileachd a dh’ atharraich sinn.

Tha an tionndadh den fhaidhle pom.xml leis na h-atharrachaidhean gu lèir suidhichte aig github.com/mrizzi/jboss-eap-quickstarts/blob/quarkus/helloworld/pom.xml.

Thoir an aire gu bheil am mvn io.quarkus: quarkus-maven-plugin: 0.23.2: cruthaich àithne gu h-àrd chan ann a-mhàin ag atharrachadh am faidhle pom.xml, ach cuideachd a ’cur grunn phàirtean ris a’ phròiseact, is e sin na faidhlichean agus na pasganan a leanas:

  • Am faidhle mvnw agus mvnw.cmd agus am pasgan .mvn: leigidh Maven Wrapper leat pròiseactan Maven de dhreach sònraichte Maven a ruith gun a bhith a’ stàladh an dreach sin.
  • Pasgan docker (anns an src/prìomh/eòlaire): Seo eisimpleir Dockerfiles airson modhan dùthchasach agus jvm (còmhla ris an fhaidhle .dockerignore).
  • Pasgan ghoireasan (anns an src/prìomh/eòlaire): Tha faidhle application.properties falamh ann agus duilleag tòiseachaidh sampall Quarkus index.html (faic Ruith an helloworld ùr-nodha airson tuilleadh fiosrachaidh).

Cuir air bhog helloworld
Gus an tagradh a dhearbhadh, bidh sinn a’ cleachdadh quarkus: dev, a chuireas Quarkus air bhog ann am modh leasachaidh (airson tuilleadh fiosrachaidh, faic an roinn seo san leabhar-làimhe Modh Leasachaidh).

Note: Tha dùil gum bi mearachd mar thoradh air a’ cheum seo, leis nach eil sinn air na h-atharrachaidhean riatanach uile a dhèanamh fhathast.

A-nis leig leinn an àithne a ruith gus faicinn mar a tha e ag obair:

$ ./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

Mar sin, chan obraich e... Carson?

Tha an UnsatisfiedResolutionException a’ comharrachadh a’ chlas HelloService, a tha na bhall den chlas HelloWorldServlet (ball java: org.jboss.as.quickstarts.helloworld.HelloWorldServlet#helloService). Is e an duilgheadas a th’ ann gu bheil HelloWorldServlet feumach air eisimpleir stealladh de HelloService, agus chan fhaighear e (ged a tha an dà chlas sin san aon phacaid).

Tha an t-àm ann tilleadh gu sgrìobhainnean agus leugh mar a tha e ag obair ann an Quarkus Inject, agus mar sin Co-theacsaichean agus In-stealladh eisimeileachd (CDI). Mar sin, fosgail an stiùireadh Co-theacsan agus Dependency Injection agus anns an earrainn Lorg Bean leugh sinn: “Cha bhithear a’ sgrùdadh clas bean aig nach eil nota a tha a’ mìneachadh bean. ”

Bheir sinn sùil air a’ chlas HelloService - dha-rìribh chan eil an leithid de nota aige. Mar sin, feumar a chuir ris gus an urrainn dha Quarkus am bean a lorg agus a lorg. Agus leis gur e rud gun stàit a tha seo, is urrainn dhuinn an nota @ApplicationScoped a chuir ris gu furasta mar seo:

@ApplicationScoped
public class HelloService {

Note: an seo is dòcha gun iarr an àrainneachd leasachaidh ort am pasgan a tha a dhìth a chur ris (faic an loidhne gu h-ìosal), agus feumaidh tu seo a dhèanamh le làimh, mar seo:

import javax.enterprise.context.ApplicationScoped;

Ma tha thu teagmhach mu dè an raon a bu chòir a chleachdadh anns a’ chùis nuair nach eil e air a shònrachadh airson an stòr bean idir, leugh na sgrìobhainnean JSR 365: Co-theacsan agus In-stealladh eisimeileachd airson Java 2.0 - Farsaingeachd bunaiteach.

A-nis feuchaidh sinn a-rithist ris an tagradh a chuir air bhog leis an àithne ./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]

A-nis thèid a h-uile càil gun mhearachdan.

A 'cur air bhog an helloworld ùr-nodha
Mar a tha e sgrìobhte sa log, fosgail e sa bhrobhsair 0.0.0.0: 8080 (duilleag tòiseachaidh bunaiteach Quarkus) agus chì sinn seo:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 4. Duilleag tòiseachaidh Quarkus dev.

Anns an nota WebServlet airson an aplacaid seo tha am mìneachadh co-theacsa a leanas:

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

Mar sin, thèid sinn sa bhrobhsair gu 0.0.0.0:8080/HelloWorld agus chì sinn na leanas:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 5: An duilleag Quarkus dev airson an tagradh Hello World.

Uill, tha a h-uile càil ag obair.

A-nis leig dhuinn atharrachaidhean a dhèanamh air a 'chòd. Thoir an aire gu bheil an àithne ./mvnw compile quarkus: dev fhathast a’ ruith agus chan eil dùil againn stad a chuir air. A-nis feuchaidh sinn ris na h-aon atharrachaidhean a chuir an sàs - glè bheag - air a’ chòd fhèin agus faic mar a nì Quarkus beatha nas fhasa don leasaiche:

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

Sàbhail am faidhle agus an uairsin ùraich an duilleag lìn gus Hello Marco fhaicinn, mar a chithear san dealbh gu h-ìosal:

Quarkus: Ùrachadh thagraidhean A’ cleachdadh Helloworld mar eisimpleir bho JBoss EAP Quickstart

Reis. 6. Duilleag Hello Marco ann an Quarkus dev.

A-nis leig dhuinn sùil a thoirt air an toradh anns a’ chrìoch:

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

Bhrosnaich ùrachadh na duilleige lorg atharrachaidhean anns a’ chòd stòr, agus rinn Quarkus modh-obrach stad-tòiseachaidh gu fèin-ghluasadach. Agus chaidh seo uile a chrìochnachadh ann an dìreach 0.371 diogan (seo e, an “Java subatomic ultra-luath”).

A’ togail helloworld ann am pasgan JAR
A-nis gu bheil an còd ag obair mar a bu chòir, leig dhuinn a phacaid leis an òrdugh a leanas:

$ ./mvnw clean package

Bidh an àithne seo a’ cruthachadh dà fhaidhle JAR sa phasgan / targaid: am faidhle helloworld-.jar, a tha na artifact àbhaisteach a chruinnich sgioba Maven còmhla ri clasaichean is goireasan a’ phròiseict. Agus am faidhle helloworld-runner.jar, a tha na JAR so-ghnìomhaichte.

Thoir an aire nach e uber-jar a tha seo, leis gu bheil a h-uile eisimeileachd dìreach air a chopaigeadh a-steach don phasgan /target/lib (chan eil e air a phacaigeadh a-steach do fhaidhle JAR). Mar sin, gus an JAR seo a ruith bho phasgan eile no air òstair eile, feumaidh tu an dà chuid am faidhle JAR fhèin agus am pasgan / lib an sin a chopaigeadh, leis gu bheil an eileamaid Class-Path anns an fhaidhle MANIFEST.MF sa phacaid JAR anns a bheil liosta soilleir de JARn bho phasganan lib
Gus ionnsachadh mar a chruthaicheas tu tagraidhean uber-jar, thoir sùil air an oideachadh Cruthachadh Uber-Jar.

Cuir air bhog helloworld air a phacaigeadh ann an JAR

A-nis is urrainn dhuinn ar JAR a ruith a’ cleachdadh an òrdugh java àbhaisteach:

$ 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]

Às deidh seo uile a dhèanamh, rachaibh chun bhrobhsair agad aig 0.0.0.0:8080 agus dèan cinnteach gu bheil a h-uile càil ag obair mar bu chòir.

A’ cur ri chèile helloworld ann am faidhle so-ghnìomhaichte dùthchasach

Mar sin tha an saoghal hello againn a’ ruith mar thagradh Java leis fhèin a’ cleachdadh eisimeileachd Quarkus. Ach faodaidh tu a dhol nas fhaide agus a thionndadh gu faidhle gnìomhach dùthchasach.

Stàladh GraalVM
An toiseach, airson seo feumaidh tu na h-innealan riatanach a stàladh:

1. Luchdaich sìos GraalVM 19.2.0.1 bho github.com/oracle/graal/releases/tag/vm-19.2.0.1.

2. Leudaich an tasglann a chaidh a luchdachadh sìos:

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

3. Rach don phasgan untar.

4. Ruith an àithne gu h-ìosal gus an ìomhaigh dhùthchasach a luchdachadh sìos agus a chur ris:

$ ./bin/gu install native-image

5. Clàraich am pasgan a chaidh a chruthachadh ann an ceum 2 gu caochladair àrainneachd GRALVM_HOME:

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

Airson tuilleadh fiosrachaidh agus stiùireadh stàlaidh air OSes eile, faic an leabhar-làimhe Togail Gnìomh Dùthchasach - Ro-ghoireasan.

A’ togail helloworld gu bhith na fhaidhle so-ghnìomhaichte dùthchasach
A 'leughadh an leabhar-làimhe A 'togail gnìomh dùthchasach - a' dèanamh gnìomh dùthchasach: “A-nis cruthaichidh sinn faidhle gnìomhachaidh dùthchasach airson an tagradh againn gus an ùine tòiseachaidh agus meud diosc a lughdachadh. Bidh a h-uile dad a tha riatanach san fhaidhle so-ghnìomhaichte gus an tagradh a ruith, a’ toirt a-steach an JVM (no an àite, dreach cuibhrichte dheth, anns nach eil ach na tha a dhìth gus an tagradh a ruith) agus an tagradh againn fhèin."

Gus faidhle gnìomhachaidh dùthchasach a chruthachadh, feumaidh tu pròifil dùthchasach Maven a chomasachadh:

$ ./mvnw package -Pnative

Thug an togail againn aon mhionaid agus 10 diogan, agus chaidh am faidhle helloworld-runner f mu dheireadh a chruthachadh sa phasgan / targaid.

Ruith an gnìomh helloworld dùthchasach

Anns a’ cheum roimhe, fhuair sinn am faidhle so-ghnìomhaichte /target/helloworld-runner. A-nis leig leinn a ruith:

$ ./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]

Fosgail e sa bhrobhsair a-rithist 0.0.0.0:8080 agus dèan cinnteach gu bheil a h-uile càil ag obair mar bu chòir.

Ri leantainn!

Tha sinn den bheachd gum bu chòir an dòigh air tagraidhean Java ùrachadh a’ cleachdadh comasan Quarkus a chaidh a dheasbad san dreuchd seo (ged a tha e a’ cleachdadh eisimpleir shìmplidh) a chleachdadh gu gnìomhach ann am fìor bheatha. Ann a bhith a’ dèanamh seo, tha coltas ann gun tig thu tarsainn air grunn dhuilgheadasan, air am bi sinn a’ dèiligeadh gu ìre anns an ath phost, far am bruidhinn sinn mu mar a thomhaiseas tu caitheamh cuimhne gus leasachaidhean coileanaidh a mheasadh, pàirt chudromach den phròiseas ùrachadh tagraidh gu lèir.

Source: www.habr.com

Cuir beachd ann