рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░реАрд▓ рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░, рд╣реА рдЖрд╣реЗ рдХреНрд╡рд╛рд░реНрдХрд╕ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдЪреМрдереА рдкреЛрд╕реНрдЯ!

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рдорд╛рдЧреАрд▓ рдкреЛрд╕реНрдЯ рдХреНрд╡рд╛рд░реНрдХрд╕ рдорд╛рдпрдХреНрд░реЛрдкреНрд░реЛрдлрд╛рдИрд▓ рдЖрдгрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╕реЗ рдПрдХрддреНрд░ рдХрд░рддрд╛рдд рдпрд╛рдмрджреНрджрд▓ рд╣реЛрддреЗ. рддреНрдпрд╛рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреНрдпрд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ "рдЕрд▓реНрдЯреНрд░рд╛-рдлрд╛рд╕реНрдЯ рд╕рдмрдЯреЙрдорд┐рдХ Java" рдореНрд╣рдгреВрди рд╕реНрдерд┐рдд рдЖрд╣реЗ, рдЙрд░реНрдл тАЛтАЛ"рдХреБрдмрд░реНрдиреЗрдЯреНрд╕-рдУрд░рд┐рдПрдВрдЯреЗрдб Java рд╕реНрдЯреЕрдХ, GraalVM рдЖрдгрд┐ OpenJDK HotSpot рд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдЖрдгрд┐ рд╕рд░реНрд╡реЛрддреНрдХреГрд╖реНрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдорд╛рдирдХрд╛рдВрдордзреВрди рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ." рдЖрдЬ рдЖрдкрдг рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рдХреНрд╡рд╛рд░реНрдХрд╕рдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╡рд┐рджреНрдпрдорд╛рди рдЬрд╛рд╡рд╛ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рддреЗ рджрд╛рдЦрд╡реВ рд░реЗрдб рд╣реЕрдЯ рдЬреЗрдмреЙрд╕ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо (рдЬреЗрдмреЙрд╕ рдИрдПрдкреА) рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕, рдЬреЗ Quarkus рджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд CDI рдЖрдгрд┐ Servlet 3 рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд╛рдкрд░рддреЗ.

рдпреЗрдереЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА Quarkus рдЖрдгрд┐ JBoss EAP рджреЛрдиреНрд╣реА рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдорд╛рдирдХ-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╡рд░ рднрд░ рджреЗрддрд╛рдд. JBoss EAP рд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓реВ рдирд╛рд╣реА? рдХрд╛рд╣реА рд╣рд░рдХрдд рдирд╛рд╣реА, рд╣реЗ рддреБрдордЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди JBoss EAP рд╡рд░ рд╕рд╣рдЬрдкрдгреЗ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ Red Hat рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдорд╛рдпрдЧреНрд░реЗрд╢рди рдЯреВрд▓рдХрд┐рдЯ. рддреНрдпрд╛рдирдВрддрд░ рдЖрдзреБрдирд┐рдХреАрдХреГрдд рдХреЛрдбрдЪреА рдЕрдВрддрд┐рдо рдЖрдгрд┐ рдХрд╛рд░реНрдпрд░рдд рдЖрд╡реГрддреНрддреА рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдИрд▓ github.com/mrizzi/jboss-eap-quickstarts/tree/quarkus, рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ helloworld.

рд╣реЗ рдкреЛрд╕реНрдЯ рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗ рдХреНрд╡рд╛рд░реНрдХрд╕ рдореЕрдиреНрдпреБрдЕрд▓, рдмрд╣реБрддреЗрдХ рддреБрдордЪрд╛ рдкрд╣рд┐рд▓рд╛ рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ рдЖрдгрд┐ рдЗрдорд╛рд░рдд a рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓.

рдЪрд▓рд╛ рдХреЛрдб рдорд┐рд│рд╡реВрдпрд╛

рд╕рд░реНрд╡рдкреНрд░рдердо, рднрд╛рдВрдбрд╛рд░рд╛рдЪрд╛ рд╕реНрдерд╛рдирд┐рдХ рдХреНрд▓реЛрди рддрдпрд╛рд░ рдХрд░реВ 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/

рдореВрд│ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВрдпрд╛

рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рд╕рд╛рд░ рдирд╛рд╡рд╛рд╡рд░реВрди рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рддреНрдпрд╛рдЪреНрдпрд╛ рдХреЛрдбрдЪреЗ рдХрд╛рдЯреЗрдХреЛрд░рдкрдгреЗ рд╢рд╛рд╕реНрддреНрд░реАрдп рдкрджреНрдзрддреАрдиреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд░реВ. рдореНрд╣рдгреВрди, рдкреНрд░рдердо, рд╣рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреНрдпрд╛рдЪреНрдпрд╛ рдореВрд│ рд╕реНрд╡рд░реВрдкрд╛рдд рдкрд╛рд╣реВ.

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рддреИрдирд╛рдд рдХрд░рдд рдЖрд╣реЗ

1. рдЯрд░реНрдорд┐рдирд▓ рдЙрдШрдбрд╛ рдЖрдгрд┐ JBoss EAP рдлреЛрд▓реНрдбрд░рдЪреНрдпрд╛ рд░реВрдЯрд╡рд░ рдЬрд╛ (рддреБрдореНрд╣реА рддреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВ рд╢рдХрддрд╛ рдпреЗрдереЗ), рдореНрд╣рдгрдЬреЗ, EAP_HOME рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ.

2. рдбреАрдлреЙрд▓реНрдЯ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╕рд╣ JBoss EAP рд╕рд░реНрд╡реНрд╣рд░ рд▓рд╛рдБрдЪ рдХрд░рд╛:

$ EAP_HOME/bin/standalone.sh

рдЯреАрдк: Windows рд╡рд░, EAP_HOMEbinstandalone.bat рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.

рдХрд╛рд╣реА рд╕реЗрдХрдВрджрд╛рдВрдирдВрддрд░, рд▓реЙрдЧрдордзреНрдпреЗ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ:

[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. рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЙрдШрдбрд╛ 127.0.0.1:8080 рдЖрдгрд┐ рдЖрдореНрд╣реА рд╣реЗ рдкрд╛рд╣рддреЛ:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 1. JBoss EAP рдореБрдЦреНрдпрдкреГрд╖реНрда.

4. рдореЕрдиреНрдпреБрдЕрд▓рдордзреАрд▓ рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рддреИрдирд╛рдд рдХрд░рд╛: helloworld рд╡рд┐рд╕реНрддреГрдд рдХрд░рд╛ рдЖрдгрд┐ рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдлреЛрд▓реНрдбрд░рдордзреВрди) рдЪрд╛рд▓рд╡рд╛:

$ mvn clean install wildfly:deploy

рд╣реА рдХрдорд╛рдВрдб рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд▓реЙрдЧрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕реЗрд▓:

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

рддрд░, JBoss EAP рд╡рд░ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЙрдкрдпреЛрдЬрдирд╛рд▓рд╛ рдлрдХреНрдд 8 рд╕реЗрдХрдВрджрд╛рдВрдЪрд╛ рдХрд╛рд▓рд╛рд╡рдзреА рд▓рд╛рдЧрд▓рд╛.

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдбрдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдд рдЖрд╣реЗ

рд╕реВрдЪрдирд╛рдВрдиреБрд╕рд╛рд░ рдХрд╛рдЯреЗрдХреЛрд░рдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЕрд░реНрдЬрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛, рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЙрдШрдбрд╛ 127.0.0.1:8080/helloworld рдЖрдгрд┐ рдЖрдореНрд╣реА рд╣реЗ рдкрд╛рд╣рддреЛ:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 2. JBoss EAP рдХрдбреВрди рдореВрд│ рд╣реЕрд▓реЛ рд╡рд░реНрд▓реНрдб.

рдмрджрд▓ рдХрд░рдд рдЖрд╣реЗ

рдЗрдирдкреБрдЯ рдкреЕрд░рд╛рдореАрдЯрд░ createHelloMessage(рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рд╡) рд╡рд░реНрд▓реНрдб рд╡рд░реВрди рдорд╛рд░реНрдХреЛрдордзреНрдпреЗ рдмрджрд▓рд╛:

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

рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рдкреБрдиреНрд╣рд╛ рдЪрд╛рд▓рд╡рд╛:

$ mvn clean install wildfly:deploy

рдордЧ рдЖрдореНрд╣реА рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдкреГрд╖реНрда рд░реАрдлреНрд░реЗрд╢ рдХрд░рддреЛ рдЖрдгрд┐ рдордЬрдХреВрд░ рдмрджрд▓рд▓реНрдпрд╛рдЪреЗ рдкрд╛рд╣рддреЛ:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 3. JBoss EAP рдордзреНрдпреЗ рд╣реЕрд▓реЛ рдорд╛рд░реНрдХреЛ.

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рддреИрдирд╛рддреА рдкрд░рдд рдХрд░рд╛ рдЖрдгрд┐ JBoss EAP рдмрдВрдж рдХрд░рд╛

рд╣реЗ рдРрдЪреНрдЫрд┐рдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреБрдореНрд╣реА рдЙрдкрдпреЛрдЬрди рд░рджреНрдж рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢рд╛рдиреЗ рдЕрд╕реЗ рдХрд░реВ рд╢рдХрддрд╛:

$ mvn clean install wildfly:undeploy

рддреБрдордЪрд╛ JBoss EAP рдЙрджрд╛рд╣рд░рдг рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдлрдХреНрдд рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ Ctrl+C рджрд╛рдмрд╛.

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдд рдЖрд╣реЗ

рдЖрддрд╛ рдореВрд│ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд░реВрдпрд╛.

рдирд╡реАрди рд╢рд╛рдЦрд╛ рддрдпрд╛рд░ рдХрд░рд╛

рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдкреНрд░рдХрд▓реНрдк рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рдПрдХ рдирд╡реАрди рдХрд╛рд░реНрдпрд░рдд рд╢рд╛рдЦрд╛ рддрдпрд╛рд░ рдХрд░рддреЛ:

$ git checkout -b quarkus 7.2.0.GA

pom.xml рдлрд╛рдЗрд▓ рдмрджрд▓рдд рдЖрд╣реЗ

рдЖрдореНрд╣реА pom.xml рдлрд╛рдИрд▓рдордзреВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдмрджрд▓рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВ. рдХреНрд╡рд╛рд░реНрдХрд╕рд▓рд╛ рддреНрдпрд╛рдд XML рдмреНрд▓реЙрдХреНрд╕ рдШрд╛рд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, helloworld рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рдЪрд╛рд▓рд╡рд╛:

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

рд╣рд╛ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рдЖрд╡реГрддреНрддреА 0.23.2 рд╡рд╛рдкрд░рд▓реА рд╣реЛрддреА. рдХреНрд╡рд╛рд░реНрдХрд╕ рдЕрдиреЗрдХрджрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛ рд░рд┐рд▓реАрдЭ рдХрд░рддреЗ, рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рдХреЛрдгрддреА рдЖрд╡реГрддреНрддреА рдирд╡реАрдирддрдо рдЖрд╣реЗ рд╣реЗ рдЖрдкрдг рд╢реЛрдзреВ рд╢рдХрддрд╛ github.com/quarkusio/quarkus/releases/latest.

рд╡рд░реАрд▓ рдХрдорд╛рдВрдб pom.xml рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░реЗрд▓:

  • рдорд╛рд▓рдорддреНрддрд╛ , рдЬреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд╡рд╛рд░реНрдХрд╕рдЪреА рдЖрд╡реГрддреНрддреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ.
  • рдмреНрд▓реЙрдХ рдХрд░рд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ рдмреАрдУрдПрдо (рд╕рд╛рд╣рд┐рддреНрдпрд╛рдВрдЪреЗ рдмрд┐рд▓) рдЖрдпрд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡рд╛рд░реНрдХрд╕ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡рд╛рд╕рд╛рдареА рдЖрд╡реГрддреНрддреА рдЬреЛрдбреВ рдирдпреЗ.
  • quarkus-maven-plugin рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЕрдХреЗрдЬрд┐рдВрдЧ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ.
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореВрд│ рдкреНрд░реЛрдлрд╛рдЗрд▓.

рдпрд╛рд╢рд┐рд╡рд╛рдп, pom.xml рдордзреНрдпреЗ рдЖрдореНрд╣реА рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдЦрд╛рд▓реАрд▓ рдмрджрд▓ рдХрд░рддреЛ:

  1. рдЯреЕрдЧ рдмрд╛рд╣реЗрд░ рдХрд╛рдврдд рдЖрд╣реЗ рдмреНрд▓реЙрдХ рдкрд╛рд╕реВрди рдЖрдгрд┐ рдЯреЕрдЧрдЪреНрдпрд╛ рд╡рд░ рдареЗрд╡рд╛ . рдХрд╛рд░рдг рдкреБрдвреАрд▓ рдЪрд░рдгрд╛рдд рдЖрдкрдг рдмреНрд▓реЙрдХ рдХрд╛рдвреВрди рдЯрд╛рдХреВ , рдирдВрддрд░ рдЖрдкрдг рдЬрддрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ .
  2. рдмреНрд▓реЙрдХ рдХрд╛рдврдд рдЖрд╣реЗ , рдХрд╛рд░рдг Quarkus рд╕рд╣ рдЪрд╛рд▓рдд рдЕрд╕рддрд╛рдирд╛, рдпрд╛ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛ рдпрд╛рдкреБрдвреЗ JBoss рдХрдбреВрди рдкреЕрд░реЗрдВрдЯ рдкреЙрдордЪреА рдЧрд░рдЬ рднрд╛рд╕рдгрд╛рд░ рдирд╛рд╣реА.
  3. рдЯреЕрдЧ рдЬреЛрдбрд╛ рдЖрдгрд┐ рдЯреЕрдЧрдЦрд╛рд▓реА рдареЗрд╡рд╛ . рдЖрдкрдг рдЗрдЪреНрдЫрд┐рдд рдЖрд╡реГрддреНрддреА рдХреНрд░рдорд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛.
  4. рдЯреЕрдЧ рдХрд╛рдвреВрди рдЯрд╛рдХрдд рдЖрд╣реЗ , рдХрд╛рд░рдг рд╣рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрддрд╛ рдпреБрджреНрдз рдирд╛рд╣реА, рдкрд░рдВрддреБ рдирд┐рдпрдорд┐рдд JAR рдЖрд╣реЗ.
  5. рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╕реБрдзрд╛рд░рд┐рдд рдХрд░рддреЛ:
    1. рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ javax.enterprise:cdi-api io.quarkus:quarkus-arc рд╡рд░ рдмрджрд▓рд╛, рдХрд╛рдвреВрди рдЯрд╛рдХрдд рдЖрд╣реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ , рдХрд╛рд░рдг (рдбреЙрдХреНрд╕рдиреБрд╕рд╛рд░) рд╣рд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ рд╡рд┐рд╕реНрддрд╛рд░ CDI рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡рд╛рдВрдЪреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЛ.
    2. рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec io.quarkus:quarkus-undertow рд╡рд░ рдмрджрд▓рд╛, рдХрд╛рдвреВрди рдЯрд╛рдХрд╛ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ , рдХрд╛рд░рдг (рдбреЙрдХреНрд╕рдиреБрд╕рд╛рд░) рд╣рд╛ рдХреНрд╡рд╛рд░реНрдХрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рд░реНрд╡реНрд╣рд▓реЗрдЯреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рддреЛ.
    3. рдЖрдореНрд╣реА org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ рдХрд╛рд░рдг рддреЗ рдЖрдореНрд╣реА рдиреБрдХрддреЗрдЪ рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рдЕрд╡рд▓рдВрдмрдирд╛рдВрд╕рд╣ рдпреЗрддреЗ.

рд╕рд░реНрд╡ рдмрджрд▓рд╛рдВрд╕рд╣ pom.xml рдлрд╛рдЗрд▓рдЪреА рдЖрд╡реГрддреНрддреА рдпреЗрдереЗ рдЖрд╣реЗ github.com/mrizzi/jboss-eap-quickstarts/blob/quarkus/helloworld/pom.xml.

рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╡рд░реАрд▓ mvn io.quarkus:quarkus-maven-plugin:0.23.2:create рдХрдорд╛рдВрдб рдХреЗрд╡рд│ pom.xml рдлрд╛рдЗрд▓ рдмрджрд▓рдд рдирд╛рд╣реА, рддрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рдЕрдиреЗрдХ рдШрдЯрдХ рдЬреЛрдбрддреЗ, рдореНрд╣рдгрдЬреЗ рдЦрд╛рд▓реАрд▓ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдлреЛрд▓реНрдбрд░реНрд╕:

  • mvnw рдЖрдгрд┐ mvnw.cmd рдлрд╛рдЗрд▓ рдЖрдгрд┐ .mvn рдлреЛрд▓реНрдбрд░: Maven Wrapper рддреБрдореНрд╣рд╛рд▓рд╛ рджрд┐рд▓реЗрд▓реНрдпрд╛ Maven рдЖрд╡реГрддреНрддреАрдЪреЗ Maven рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рддреА рдЖрд╡реГрддреНрддреА рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░рддрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
  • рдбреЙрдХрд░ рдлреЛрд▓реНрдбрд░ (src/main/ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд): рдпрд╛рдордзреНрдпреЗ рдиреЗрдЯрд┐рд╡реНрд╣ рдЖрдгрд┐ jvm рдореЛрдбрд╕рд╛рдареА (.dockerignore рдлрд╛рдЗрд▓рд╕рд╣) рдЙрджрд╛рд╣рд░рдгреЗ рдбреЙрдХрд░рдлрд╛рдИрд▓реНрд╕ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.
  • рд╕рдВрд╕рд╛рдзрдиреЗ рдлреЛрд▓реНрдбрд░ (src/main/ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд): рдпрд╛рдордзреНрдпреЗ рд░рд┐рдХреНрдд application.properties рдлрд╛рдЗрд▓ рдЖрдгрд┐ рдирдореБрдирд╛ Quarkus index.html рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рдЖрд╣реЗ (рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА рдЖрдзреБрдирд┐рдХреАрдХреГрдд рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдЪрд╛рд▓рд╡рд╛ рдкрд╣рд╛).

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд▓рд╛рдБрдЪ рдХрд░рд╛
рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдХреНрд╡рд╛рд░реНрдХрд╕:рджреЗрд╡ рд╡рд╛рдкрд░рддреЛ, рдЬреЗ рдХреНрд╡рд╛рд░реНрдХрд╕ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдореЛрдбрдордзреНрдпреЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ (рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА, рдореЕрдиреНрдпреБрдЕрд▓рдордзреАрд▓ рд╣рд╛ рд╡рд┐рднрд╛рдЧ рдкрд╣рд╛. рд╡рд┐рдХрд╛рд╕ рдореЛрдб).

рдЯреАрдк: рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдмрджрд▓ рдХреЗрд▓реЗ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рдпрд╛ рдЪрд░рдгрд╛рдореБрд│реЗ рддреНрд░реБрдЯреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ.

рдЖрддрд╛ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡реВ:

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

рддрд░, рддреЗ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА... рдХрд╛?

UnsatisfiedResolutionException рд╣реЗ HelloService рд╡рд░реНрдЧрд╛рдХрдбреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд░рддреЗ, рдЬреЛ HelloWorldServlet рд╡рд░реНрдЧрд╛рдЪрд╛ рд╕рджрд╕реНрдп рдЖрд╣реЗ (java рд╕рджрд╕реНрдп: org.jboss.as.quickstarts.helloworld.HelloWorldServlet#helloService). рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА HelloWorldServlet рд▓рд╛ HelloService рдЪреЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рд╕рд╛рдкрдбрдд рдирд╛рд╣реА (рдЬрд░реА рд╣реЗ рджреЛрдиреНрд╣реА рд╡рд░реНрдЧ рдПрдХрд╛рдЪ рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдЖрд╣реЗрдд).

рдХрдбреЗ рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЖрдгрд┐ рддреЗ Quarkus рдордзреНрдпреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рд╡рд╛рдЪрд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рд╛, рдЖрдгрд┐ рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЗрдВрдЬреЗрдХреНрд╢рди (рд╕реАрдбреАрдЖрдп). рдореНрд╣рдгреВрди, рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрди рдЗрдВрдЬреЗрдХреНрд╢рди рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдЖрдгрд┐ рд╡рд┐рднрд╛рдЧрд╛рдд рдЙрдШрдбрд╛ рдмреАрди рд╢реЛрдз рдЖрдореНрд╣реА рд╡рд╛рдЪрддреЛ: "рдмреАрди-рдкрд░рд┐рднрд╛рд╖рд┐рдд рднрд╛рд╖реНрдп рдирд╕рд▓реЗрд▓рд╛ рдмреАрди рд╡рд░реНрдЧ рд╢реЛрдзрд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА."

рдЪрд▓рд╛ HelloService рд╡рд░реНрдЧ рдкрд╛рд╣реВ - рддреНрдпрд╛рдд рдЦрд░реЛрдЦрд░ рдЕрд╕реЗ рднрд╛рд╖реНрдп рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рддреЗ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдХреНрд╡рд╛рд░реНрдХрд╕ рдмреАрди рд╢реЛрдзреВ рд╢рдХреЗрд▓ рдЖрдгрд┐ рд╢реЛрдзреВ рд╢рдХреЗрд▓. рдЖрдгрд┐ рд╣реА рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдкрдг @ApplicationScoped рднрд╛рд╖реНрдп рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рд╣рдЬ рдЬреЛрдбреВ рд╢рдХрддреЛ:

@ApplicationScoped
public class HelloService {

рдЯреАрдк: рдпреЗрдереЗ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдкреЕрдХреЗрдЬ рдЬреЛрдбрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧреВ рд╢рдХрддреЗ (рдЦрд╛рд▓реАрд▓ рдУрд│ рдкрд╣рд╛), рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рдЬрд╕реЗ:

import javax.enterprise.context.ApplicationScoped;

рд╕реЛрд░реНрд╕ рдмреАрдирд╕рд╛рдареА рдЕрдЬрд┐рдмрд╛рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╕рддрд╛рдирд╛ рдХреЛрдгрддрд╛ рд╕реНрдХреЛрдк рд╡рд╛рдкрд░рд╛рд╡рд╛ рдпрд╛рдмрджреНрджрд▓ рддреБрдореНрд╣рд╛рд▓рд╛ рд╢рдВрдХрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╡рд╛рдЪрд╛ JSR 365: Java 2.0 рд╕рд╛рдареА рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЗрдВрдЬреЗрдХреНрд╢рдитАФрдбрд┐рдлреЙрд▓реНрдЯ рд╕реНрдХреЛрдк.

рдЖрддрд╛ рдЖрдореНрд╣реА рдкреБрдиреНрд╣рд╛ ./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]

рдЖрддрд╛ рд╕рд░реНрд╡ рдХрд╛рд╣реА рддреНрд░реБрдЯреАрдВрд╢рд┐рд╡рд╛рдп рд╣реЛрддреЗ.

рдЖрдзреБрдирд┐рдХ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд▓рд╛рдБрдЪ рдХрд░рдд рдЖрд╣реЗ
рд▓реЙрдЧрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рддреЗ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЙрдШрдбрд╛ 0.0.0.0:8080 (рдбреАрдлреЙрд▓реНрдЯ рдХреНрд╡рд╛рд░реНрдХрд╕ рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда) рдЖрдгрд┐ рдЖрдореНрд╣реА рд╣реЗ рдкрд╛рд╣рддреЛ:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 4. рдХреНрд╡рд╛рд░реНрдХрд╕ рджреЗрд╡ рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда.

рдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рд╡реЗрдмрд╕рд░реНрд╡реНрд╣рд▓реЗрдЯ рднрд╛рд╖реНрдпрд╛рдд рдЦрд╛рд▓реАрд▓ рд╕рдВрджрд░реНрдн рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ:

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

рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЬрд╛ 0.0.0.0:8080/HelloWorld рдЖрдгрд┐ рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдкрд╛рд╣рддреЛ:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 5: рд╣реЕрд▓реЛ рд╡рд░реНрд▓реНрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рдХреНрд╡рд╛рд░реНрдХрд╕ рдбреЗрд╡реНрд╣ рдкреГрд╖реНрда.

рдмрд░рдВ, рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдЖрддрд╛ рдХреЛрдбрдордзреНрдпреЗ рдмрджрд▓ рдХрд░реВ. рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА ./mvnw compile quarkus:dev рдХрдорд╛рдВрдб рдЕрдЬреВрдирд╣реА рдЪрд╛рд▓реВ рдЖрд╣реЗ рдЖрдгрд┐ рддреА рдерд╛рдВрдмрд╡рдгреНрдпрд╛рдЪрд╛ рдЖрдордЪрд╛ рдХреЛрдгрддрд╛рд╣реА рд╣реЗрддреВ рдирд╛рд╣реА. рдЖрддрд╛ рддреЗрдЪ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛ - рдЕрдЧрджреА рдХреНрд╖реБрд▓реНрд▓рдХ - рдХреЛрдбрдордзреНрдпреЗрдЪ рдмрджрд▓ рдЖрдгрд┐ рдХреНрд╡рд╛рд░реНрдХрд╕ рд╡рд┐рдХрд╕рдХрд╛рдЪреЗ рдЬреАрд╡рди рдХрд╕реЗ рд╕реЛрдкреЗ рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВ:

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

рдЦрд╛рд▓реАрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╣реЕрд▓реЛ рдорд╛рд░реНрдХреЛ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдИрд▓ рд╕реЗрд╡реНрд╣ рдХрд░рд╛ рдЖрдгрд┐ рдирдВрддрд░ рд╡реЗрдм рдкреГрд╖реНрда рд░реАрдлреНрд░реЗрд╢ рдХрд░рд╛:

рдХреНрд╡рд╛рд░реНрдХрд╕: рдЬреЗрдмреЙрд╕ рдИрдПрдкреА рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рд╡рд╛рдкрд░реВрди рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд░реНрдирд╛рдпрдЭреЗрд╢рди

рддрд╛рдВрджреВрд│. 6. рдХреНрд╡рд╛рд░реНрдХрд╕ рджреЗрд╡ рдордзреАрд▓ рд╣реЕрд▓реЛ рдорд╛рд░реНрдХреЛ рдкреГрд╖реНрда.

рдЖрддрд╛ рдЯрд░реНрдорд┐рдирд▓рдордзреНрдпреЗ рдЖрдЙрдЯрдкреБрдЯ рддрдкрд╛рд╕реВ:

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

рдкреГрд╖реНрда рд░рд┐рдлреНрд░реЗрд╢рдореБрд│реЗ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреАрд▓ рдмрджрд▓ рдУрд│рдЦрдгреНрдпрд╛рд╕ рдЪрд╛рд▓рдирд╛ рдорд┐рд│рд╛рд▓реА рдЖрдгрд┐ рдХреНрд╡рд╛рд░реНрдХрд╕рдиреЗ рдЖрдкреЛрдЖрдк рд╕реНрдЯреЙрдк-рд╕реНрдЯрд╛рд░реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА. рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ рдЕрд╡рдШреНрдпрд╛ реж.рейренрез рд╕реЗрдХрдВрджрд╛рдд рдкреВрд░реНрдг рдЭрд╛рд▓реЗ.

JAR рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ
рдЖрддрд╛ рдХреЛрдб рдЬрд╕реЗ рдкрд╛рд╣рд┐рдЬреЗ рддрд╕реЗ рдХрд╛рдо рдХрд░рддреЛ, рдЪрд▓рд╛ рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдбрд╕рд╣ рдкреЕрдХреЗрдЬ рдХрд░реВрдпрд╛:

$ ./mvnw clean package

рд╣реА рдХрдорд╛рдВрдб /target рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рджреЛрди JAR рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рддреЗ: helloworld-.jar рдлрд╛рдЗрд▓, рдЬреА рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рдЖрдгрд┐ рд░рд┐рд╕реЛрд░реНрд╕реЗрд╕рд╕рд╣ рдорд╛рд╡реЗрди рдЯреАрдорджреНрд╡рд╛рд░реЗ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗрд▓реА рдорд╛рдирдХ рдЖрд░реНрдЯрд┐рдлреЕрдХреНрдЯ рдЖрд╣реЗ. рдЖрдгрд┐ helloworld-runner.jar рдлрд╛рдЗрд▓, рдЬреА рдПрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ JAR рдЖрд╣реЗ.

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╣реЗ uber-jar рдирд╛рд╣реА, рдХрд╛рд░рдг рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдлрдХреНрдд /target/lib рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдХреЙрдкреА рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд (JAR рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкреЕрдХреЗрдЬ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА). рдореНрд╣рдгреВрди, рд╣реЗ JAR рджреБрд╕рд▒реНрдпрд╛ рдлреЛрд▓реНрдбрд░рд╡рд░реВрди рдХрд┐рдВрд╡рд╛ рджреБрд╕рд▒реНрдпрд╛ рд╣реЛрд╕реНрдЯрд╡рд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА, JAR рд╕рдВрдХреБрд▓рд╛рддреАрд▓ MANIFEST.MF рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдХреНрд▓рд╛рд╕-рдкрд╛рде рдШрдЯрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ JAR рдлрд╛рдЗрд▓ рдЖрдгрд┐ рддрд┐рдерд▓реЗ /lib рдлреЛрд▓реНрдбрд░ рджреЛрдиреНрд╣реА рдХреЙрдкреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. lib рдлреЛрд▓реНрдбрд░реНрд╕рдордзреАрд▓ JAR рдЪреА рд╕реНрдкрд╖реНрдЯ рд╕реВрдЪреА
uber-jar рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХрд╕реЗ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╢рд┐рдХрдгреНрдпрд╛рд╕рд╛рдареА, рдХреГрдкрдпрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд╛ рдЙрдмрд░-рдЬрд╛рд░ рдирд┐рд░реНрдорд┐рддреА.

JAR рдордзреНрдпреЗ рдкреЕрдХреЗрдЬ рдХреЗрд▓реЗрд▓реЗ helloworld рд▓рд╛рдБрдЪ рдХрд░рд╛

рдЖрддрд╛ рдЖрдкрдг рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рдЖрдордЪрд╛ JAR рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЛ:

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

рд╣реЗ рд╕рд░реНрд╡ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдпреЗрдереЗ рдЖрдкрд▓реНрдпрд╛ рдмреНрд░рд╛рдЙрдЭрд░рд╡рд░ рдЬрд╛ 0.0.0.0:8080 рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЬрд╕реЗ рдкрд╛рд╣рд┐рдЬреЗ рддрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рддрдкрд╛рд╕рд╛.

рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдПрдХрд╛ рдореВрд│ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдд рдЖрд╣реЗ

рддреНрдпрд╛рдореБрд│реЗ рдЖрдордЪреЗ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдХреНрд╡рд╛рд░реНрдХрд╕ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╡рд╛рдкрд░реВрди рд╕реНрдЯрдБрдбрдЕрд▓реЛрди рдЬрд╛рд╡рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдореНрд╣рдгреВрди рдЪрд╛рд▓рддреЗ. рдкрд░рдВрддреБ рддреБрдореНрд╣реА рдкреБрдвреЗ рдЬрд╛рдКрди рддреЗ рдореВрд│ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдмрджрд▓реВ рд╢рдХрддрд╛.

GraalVM рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ
рд╕рд░реНрд╡ рдкреНрд░рдердо, рдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдзрдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

1. рд╡рд░реВрди GraalVM 19.2.0.1 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ github.com/oracle/graal/releases/tag/vm-19.2.0.1.

2. рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реЗ рд╕рдВрдЧреНрд░рд╣рдг рд╡рд┐рд╕реНрддреГрдд рдХрд░рд╛:

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

3. рдЕрдирдЯрд╛рд░ рдлреЛрд▓реНрдбрд░рд╡рд░ рдЬрд╛.

4. рдореВрд│ рдкреНрд░рддрд┐рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рдЪрд╛рд▓рд╡рд╛:

$ ./bin/gu install native-image

5. рдЪрд░рдг 2 рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлреЛрд▓реНрдбрд░рдЪреА GRAALVM_HOME рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдиреЛрдВрджрдгреА рдХрд░рд╛:

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

рдЗрддрд░ OS рд╡рд░ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдЖрдгрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реВрдЪрдирд╛рдВрд╕рд╛рдареА, рдореЕрдиреНрдпреБрдЕрд▓ рдкрд╣рд╛ рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ - рдкреВрд░реНрд╡рддрдпрд╛рд░реА.

рдореВрд│ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рддрдпрд╛рд░ рдХрд░рдгреЗ
рдореЕрдиреНрдпреБрдЕрд▓ рд╡рд╛рдЪрдд рдЖрд╣реЗ рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ - рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ: тАЬрдЖрддрд╛ рдЖрдордЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рд▓реЙрдиреНрдЪ рд╡реЗрд│ рдЖрдгрд┐ рдбрд┐рд╕реНрдХрдЪрд╛ рдЖрдХрд╛рд░ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореВрд│ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реВ. рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рдЕрд╕рддреАрд▓, рдЬреНрдпрд╛рдордзреНрдпреЗ JVM (рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдРрд╡рдЬреА, рддреНрдпрд╛рдЪреА рдПрдХ рдХрд╛рдкрд▓реЗрд▓реА рдЖрд╡реГрддреНрддреА, рдЬреНрдпрд╛рдордзреНрдпреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ) рдЖрдгрд┐ рд╕реНрд╡рддрдГ рдЖрдордЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.тАЭ

рдореВрд│ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд┐рд╡реНрд╣ рдореЕрд╡реЗрди рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

$ ./mvnw package -Pnative

рдЖрдордЪреНрдпрд╛ рдмрд┐рд▓реНрдбрд▓рд╛ рдПрдХ рдорд┐рдирд┐рдЯ рдЖрдгрд┐ 10 рд╕реЗрдХрдВрдж рд▓рд╛рдЧрд▓реЗ рдЖрдгрд┐ рдЕрдВрддрд┐рдо рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб-рд░рдирд░ рдПрдл рдлрд╛рдЗрд▓ /рд▓рдХреНрд╖реНрдп рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реА рдЧреЗрд▓реА.

рдиреЗрдЯрд┐рд╡реНрд╣ рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдЪрд╛рд▓рд╡рд╛

рдорд╛рдЧреАрд▓ рдЪрд░рдгрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ /target/helloworldтАФrunner рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реА. рдЖрддрд╛ рддреЗ рдЪрд╛рд▓рд╡реВ:

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

рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдкреБрдиреНрд╣рд╛ рдЙрдШрдбрд╛ 0.0.0.0:8080 рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЬрд╕реЗ рдкрд╛рд╣рд┐рдЬреЗ рддрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рддрдкрд╛рд╕рд╛.

рдкреБрдвреЗ рдЪрд╛рд▓реВ!

рдпрд╛ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реА рдХреНрд╡рд╛рд░реНрдХрд╕ рдХреНрд╖рдорддрд╛ рд╡рд╛рдкрд░реВрди Java ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪреА рдкрджреНрдзрдд (рдПрдХ рд╕рд╛рдзреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрдирд╣реА) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рдирд╛рдд рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рд╡реА рдЕрд╕рд╛ рдЖрдордЪрд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ. рдЕрд╕реЗ рдХрд░рддрд╛рдирд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛рдВрдирд╛ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рдЬреНрдпрд╛ рдЖрдореНрд╣реА рдкреБрдвреАрд▓ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рдЕрдВрд╢рддрдГ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реВ, рдЬрд┐рдереЗ рдЖрдореНрд╣реА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгрд╛рдВрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореЗрдорд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд╕рд╛ рдореЛрдЬрд╛рдпрдЪрд╛ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ, рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛