Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒก แƒแƒ› แƒ‘แƒšแƒแƒ’แƒ–แƒ”, แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒแƒ—แƒฎแƒ” แƒžแƒแƒกแƒขแƒ˜ Quarkus-แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ˜แƒ“แƒแƒœ!

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒฌแƒ˜แƒœแƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒ˜แƒงแƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก Quarkus MicroProfile แƒ“แƒ Spring. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ— แƒ แƒแƒ› แƒ™แƒ•แƒแƒ แƒ™แƒฃแƒกแƒ˜ แƒžแƒแƒ–แƒ˜แƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช โ€žแƒฃแƒšแƒขแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒกแƒฃแƒ‘แƒแƒขแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒ•แƒโ€œ, แƒแƒกแƒ”แƒ•แƒ” โ€žKubernetes-แƒ–แƒ” แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฏแƒแƒ•แƒ, แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ GraalVM-แƒ˜แƒกแƒ แƒ“แƒ OpenJDK HotSpot-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒ—โ€œ. แƒ“แƒฆแƒ”แƒก แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒ“แƒ”แƒก แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ Java แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ Quarkus-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— helloworld แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart แƒกแƒแƒชแƒแƒ•แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก CDI แƒ“แƒ Servlet 3 แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒก Quarkus-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—.

แƒแƒฅ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› Quarkus แƒ“แƒ JBoss EAP แƒฎแƒแƒ–แƒก แƒฃแƒกแƒ•แƒแƒ›แƒ”แƒœ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒแƒ  แƒ’แƒแƒฅแƒ•แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ JBoss EAP-แƒ–แƒ”? แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ JBoss EAP-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Red Hat แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜. แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ github.com/mrizzi/jboss-eap-quickstarts/tree/quarkus, แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒ›แƒกแƒแƒคแƒšแƒ˜แƒ.

แƒแƒ› แƒžแƒแƒกแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— Quarkus-แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒ”แƒ‘แƒ˜แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒจแƒ”แƒœแƒแƒ‘แƒ แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜.

แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒ™แƒแƒ“แƒ˜

แƒฃแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ”แƒก แƒงแƒแƒ•แƒšแƒ˜แƒกแƒ, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒšแƒแƒœแƒ˜ 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/

แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ helloworld

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒแƒ แƒกแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ“แƒแƒœ แƒœแƒแƒ—แƒ”แƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ›แƒ™แƒแƒชแƒ แƒแƒ“ แƒ›แƒ”แƒชแƒœแƒ˜แƒ”แƒ แƒฃแƒšแƒแƒ“ แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒ”แƒ‘แƒ—. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ—.

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 แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒ›แƒแƒก:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 1. JBoss EAP-แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜.

4. แƒ›แƒ˜แƒฐแƒงแƒ”แƒ•แƒ˜แƒ— แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ”แƒ‘แƒก แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— Quickstart: แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ— helloworld แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— (แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก root แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒ“แƒแƒœ) แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

$ mvn clean install wildfly:deploy

แƒแƒ› แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

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

แƒแƒกแƒ” แƒ แƒแƒ›, helloworld แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก JBoss EAP-แƒ–แƒ” แƒกแƒฃแƒš แƒ แƒแƒฆแƒแƒช 8 แƒฌแƒแƒ›แƒ–แƒ” แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ.

Helloworld-แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ

แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ— แƒ›แƒ™แƒแƒชแƒ แƒแƒ“ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜, แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ 127.0.0.1:8080/helloworld แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒ›แƒแƒก:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 2. แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ Hello World JBoss EAP-แƒ˜แƒกแƒ’แƒแƒœ.

แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒแƒœแƒ

แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ createHelloMessage (แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜) World-แƒ“แƒแƒœ Marco-แƒ–แƒ”:

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

แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

$ mvn clean install wildfly:deploy

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒแƒฎแƒšแƒ”แƒ‘แƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒก แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒขแƒ”แƒฅแƒกแƒขแƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 3. แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒ›แƒแƒ แƒ™แƒ JBoss EAP-แƒจแƒ˜.

แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ— helloworld แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ”แƒ— JBoss EAP

แƒ”แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒ—แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒกแƒฃแƒ แƒ— แƒ’แƒแƒแƒฃแƒฅแƒ›แƒแƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ, แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

$ mvn clean install wildfly:undeploy

แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ JBoss EAP แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒญแƒ˜แƒ แƒ”แƒ— Ctrl+C แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒœแƒฏแƒแƒ แƒแƒจแƒ˜.

Helloworld-แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ helloworld แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ.

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒแƒฎแƒแƒš แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’:

$ git checkout -b quarkus 7.2.0.GA

pom.xml แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒแƒก pom.xml แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ. Quarkus-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก XML แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒจแƒ˜ แƒฉแƒแƒกแƒ›แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ, แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ helloworld แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜:

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

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ 0.23.2. Quarkus แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒแƒฎแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ–แƒ” github.com/quarkusio/quarkus/releases/latest.

แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒฉแƒแƒกแƒ•แƒแƒ›แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก pom.xml-แƒจแƒ˜:

  • แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ , แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก Quarkus-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก.
  • แƒ‘แƒšแƒแƒ™แƒ˜ Quarkus BOM-แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ—แƒ แƒแƒ  แƒ“แƒแƒ”แƒ›แƒแƒขแƒแƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ Quarkus แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • quarkus-maven-plugin แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒแƒ–แƒ”.
  • แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒฉแƒ•แƒ”แƒœ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก pom.xml-แƒจแƒ˜:

  1. แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒขแƒ”แƒ’แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒขแƒ”แƒ’แƒ˜แƒก แƒ–แƒ”แƒ›แƒแƒ—. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒฌแƒแƒ•แƒจแƒšแƒ˜แƒ— แƒ‘แƒšแƒแƒ™แƒก, แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— .
  2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒ‘แƒšแƒแƒ™แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ Quarkus-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒแƒฆแƒแƒ  แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ JBoss-แƒ˜แƒก แƒ›แƒจแƒแƒ‘แƒ”แƒšแƒ˜ แƒžแƒแƒ›แƒ˜.
  3. แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒขแƒ”แƒ’แƒ˜ แƒ“แƒ แƒ›แƒแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒขแƒ”แƒ’แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜.
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒขแƒ”แƒ’แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก WAR, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ JAR.
  5. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒชแƒ•แƒšแƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก:
    1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ•แƒšแƒ˜แƒ— javax.enterprise:cdi-api แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก io.quarkus:quarkus-arc-แƒ–แƒ”, แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš-แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ (แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—) Quarkus-แƒ˜แƒก แƒ”แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก CDI แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒแƒก.
    2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ•แƒšแƒ˜แƒ— แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec io.quarkus:quarkus-underdow-แƒ–แƒ”, แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš-แƒก, แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ (แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—) แƒ”แƒก Quarkus แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก servlet แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ 'ov.
    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 แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒแƒ› แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.
  • Docker แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” (src/main/ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜): แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก Dockerfiles-แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒ jvm แƒ แƒ”แƒŸแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (.dockerignore แƒคแƒแƒ˜แƒšแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“).
  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” (src/main/ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜): แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒชแƒแƒ แƒ˜แƒ”แƒš application.properties แƒคแƒแƒ˜แƒšแƒก แƒ“แƒ Quarkus index.html แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒœแƒ˜แƒ›แƒฃแƒจแƒก (แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ helloworld-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ).

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— helloworld
แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— quarkus:dev, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก Quarkus-แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ (แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ”แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜).

แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ: แƒ”แƒก แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ.

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒœแƒแƒฎแƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก:

$ ./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-แƒจแƒ˜ แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ, แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ (CDI). แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— Contexts and Dependency Injection แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒ“แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒšแƒแƒ‘แƒ˜แƒแƒก แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ แƒ•แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ—: โ€žแƒšแƒแƒ‘แƒ˜แƒแƒก แƒ™แƒšแƒแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ  แƒแƒฅแƒ•แƒก แƒšแƒแƒ‘แƒ˜แƒแƒก แƒ’แƒแƒœแƒ›แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒšแƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ, แƒแƒ  แƒ˜แƒซแƒ”แƒ‘แƒœแƒ”แƒ‘แƒโ€œ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— 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 (แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ Quarkus แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜) แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒ›แƒแƒก:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 4. Quarkus-แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜.

แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก WebServlet แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒฃแƒ  แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒแƒก:

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

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— 0.0.0.0:8080/HelloWorld แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 5: Quarkus dev แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ Hello World แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ˜แƒกแƒ”, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก.

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ™แƒแƒ“แƒจแƒ˜. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› ./mvnw compile quarkus:dev แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ›แƒ˜แƒก แƒจแƒ”แƒฉแƒ”แƒ แƒ”แƒ‘แƒแƒก. แƒแƒฎแƒšแƒ แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” - แƒซแƒแƒšแƒ˜แƒแƒœ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ - แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ—แƒแƒ•แƒแƒ“ แƒ™แƒแƒ“แƒจแƒ˜ แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒฃแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก Quarkus แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒก:

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

แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒคแƒแƒ˜แƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ— แƒ•แƒ”แƒ‘ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ Hello Marco-แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”:

Quarkus: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ Helloworld-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ JBoss EAP Quickstart-แƒ“แƒแƒœ

แƒ‘แƒ แƒ˜แƒœแƒฏแƒ˜. 6. แƒ’แƒแƒ›แƒแƒ แƒฏแƒแƒ‘แƒ แƒ›แƒแƒ แƒ™แƒแƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ Quarkus dev-แƒจแƒ˜.

แƒแƒฎแƒšแƒ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒจแƒ˜:

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

แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ แƒ“แƒ Quarkus-แƒ›แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ แƒ’แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒ“แƒฃแƒ แƒ. แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ 0.371 แƒฌแƒแƒ›แƒจแƒ˜ (แƒแƒ˜, แƒ”แƒก แƒแƒ แƒ˜แƒก "แƒฃแƒšแƒขแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒกแƒฃแƒ‘แƒแƒขแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒฏแƒแƒ•แƒ").

Helloworld-แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ JAR แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜
แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒ“แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒœแƒ“แƒ, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒคแƒฃแƒ—แƒแƒ— แƒ˜แƒ’แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

$ ./mvnw clean package

แƒ”แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ  JAR แƒคแƒแƒ˜แƒšแƒก /target แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜: helloworld-.jar แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒก Maven แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒแƒ แƒขแƒ”แƒคแƒแƒฅแƒขแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“. แƒ“แƒ helloworld-runner.jar แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ JAR.

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก uber-jar, แƒ แƒแƒ“แƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ /target/lib แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜ (แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜ JAR แƒคแƒแƒ˜แƒšแƒจแƒ˜). แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒแƒ› JAR-แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒ“แƒแƒœ แƒแƒœ แƒกแƒฎแƒ•แƒ แƒฐแƒแƒกแƒขแƒ–แƒ” แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒแƒ— แƒ แƒแƒ’แƒแƒ แƒช JAR แƒคแƒแƒ˜แƒšแƒ˜, แƒแƒกแƒ”แƒ•แƒ” /lib แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” แƒ˜แƒฅ, แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› Class-Path แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜ MANIFEST.MF แƒคแƒแƒ˜แƒšแƒจแƒ˜ JAR แƒžแƒแƒ™แƒ”แƒขแƒจแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก. JAR-แƒ”แƒ‘แƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒ แƒฉแƒแƒ›แƒแƒœแƒแƒ—แƒ•แƒแƒšแƒ˜ lib แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ
แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— uber-jar แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ”แƒฌแƒ•แƒ˜แƒแƒ— แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒก Uber-Jar แƒจแƒ”แƒฅแƒ›แƒœแƒ.

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— helloworld แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜ JAR-แƒจแƒ˜

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ JAR แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ java แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—:

$ 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 แƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒœแƒ“แƒ.

helloworld-แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒจแƒ˜

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœแƒ˜ helloworld แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ Java แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ Quarkus-แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒคแƒ แƒ แƒจแƒแƒ แƒก แƒฌแƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒแƒฅแƒชแƒ˜แƒแƒ— แƒ˜แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒแƒ“.

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. แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— untar แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜.

4. แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜:

$ ./bin/gu install native-image

5. แƒ“แƒแƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ— แƒ›แƒ”-2 แƒœแƒแƒ‘แƒ˜แƒฏแƒจแƒ˜ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” GRAALVM_HOME แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜:

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

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ OS-แƒ”แƒ‘แƒ–แƒ” แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ Native Executable-แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ - แƒฌแƒ˜แƒœแƒแƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜.

Helloworld-แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒจแƒ˜
แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ Native Executable-แƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ - แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ: โ€žแƒแƒฎแƒšแƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ•แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒ“แƒ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ–แƒแƒ›แƒ. แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก JVM (แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“, แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒ™แƒ•แƒ”แƒชแƒ˜แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“) แƒ“แƒ แƒ—แƒแƒ•แƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก.โ€

แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ แƒ—แƒแƒ— แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ Maven แƒžแƒ แƒแƒคแƒ˜แƒšแƒ˜:

$ ./mvnw package -Pnative

แƒฉแƒ•แƒ”แƒœแƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ”แƒ แƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜ แƒ“แƒ 10 แƒฌแƒแƒ›แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ helloworld-runner f แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ /target แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒจแƒ˜.

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ helloworld แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜

แƒฌแƒ˜แƒœแƒ แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ /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 แƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒœแƒ“แƒ.

ะŸั€ะพะดะพะปะถะตะฝะธะต ัะปะตะดัƒะตั‚!

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒฏแƒ”แƒ แƒ, แƒ แƒแƒ› แƒแƒ› แƒžแƒแƒกแƒขแƒจแƒ˜ แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒฃแƒšแƒ˜ Quarkus-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— Java แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ (แƒ—แƒฃแƒ›แƒชแƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—) แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒจแƒ˜. แƒแƒ›แƒ’แƒ•แƒแƒ แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒจแƒ”แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒฃแƒแƒ›แƒ แƒแƒ• แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒœแƒแƒฌแƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒแƒกแƒขแƒจแƒ˜, แƒกแƒแƒ“แƒแƒช แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒ–แƒแƒ›แƒแƒ— แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒแƒกแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒ แƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ