á°áá á áá áĽáá áá áá ááᣠá¨áłááŠáľ á°á¨áłáłá á áŤá°áá ááĽá áá¸áá!
áĽáá
áá áááąá áłááŠáľ áĽá JBoss EAP á á˝áááľ á¨áá°áĄáľ á á°áťá áá á á°á¨ááá˝á áá°á¨áľ áŤá°á¨á ááłáŞáŤáá˝á ááᢠá JBoss EAP áá á¨áá°áŤ áá°áá áŞáŤ á¨áá
á? ááá á˝áá á¨ááᣠá áá áá á¨á áá á¨áá°áá áŞáŤ á ááááá áá° 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 áĽáá´áľ áĽáá°áá°áŤ áĽáá
á áĽááṠᣠá¨áá áá°áá áŞáŤ áááľ á¨áľá ááá áá ᣠáá áŽáąá á áĽáĽá áłáááłá áĽáááááááᢠáľááá ᣠá ááááŞáŤáŁ áá á áá°áá áŞáŤ á ááá ááá áĽáááá¨á°áá˘
á áá áááá á áá°ááŤáľ áá
1. á°áááá ááááą áĽá áá° JBoss EAP á áá áľá áááą (ááá¨áľ áá˝áá)
2. á¨JBoss EAP á ááááá á¨ááŁáŞ ááá፠áá á áľááááĄ-
$ EAP_HOME/bin/standalone.sh
ááľáłááť: á áááśááľ áá 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. á á áłá˝ ááľáĽ áááľ
áŠá. 1. JBoss EAP áááť áá˝.
4. á áááŞáŤá ááľáĽ áŤááľá áááŞáŤáá˝ áá¨á°á
$ mvn clean install wildfly:deploy
áá áá áľáĽáá á á°áłáŤ áááł á¨áá¸áá á ááᣠá áááἠááľáłááťá ááľáĽ á¨áá¨á°ááá á¨áá°á ááá áĽááŤááá˘
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.224 s
áľááá á JBoss EAP áá á¨ááá áá áá°áá áŞáŤá áááááŞáŤ áá áá°ááŤáą á¨8 á°á¨ááľ á áá áá áˇáá˘
á áá áááá á ááá¨á áá
á áááŞáŤá áá á¨áľ á áĽáĽá
áĽááá ááá°áą
áŠá. 2. áŚáŞá áá áá ááá ᨠJBoss EAP.
áááŚá˝á ááľá¨á
á¨áá¤áľ áááŞáŤáá createHelloMessage(á¨ááĽá¨ááá áľá) á¨á áá áá° ááᎠááááĄáĄ
writer.println("<h1>" + helloService.createHelloMessage("Marco") + "</h1>");
á¨áá¨á°ááá áľááá áĽáá°áá áŤááą:
$ mvn clean install wildfly:deploy
á¨á፠áášá á á áłáš ááľáĽ áĽááľáłáá áĽá á˝áá áĽáá°á°ááá áĽááŤáá-
áŠá. 3. á°áá ááᎠá JBoss EAP.
ᨠhelloworld áá°ááŤáąá ááááą áĽá JBoss EAPá ááá
áá á ááŤá ááᣠáá áľááááąá áá°á¨á á¨ááá á áá¨á°áá áľáĽáá ááľá¨á áá˝ááá˘
$ mvn clean install wildfly:undeploy
á¨áĽááľáá JBoss EAP ááłá áááááľ á ááá á á°áááá ááľáŽáľ ááľáĽ Ctrl+C ááŤáá˘
á áá áááá á ááťáťá áá
á áá áááá á¨ááá áá áá°áá áŞáŤá áĽáááááá˘
á á˛áľ á áááŤá ááá áŠ
á¨ááŁá á áá ááŽáááľ á¨á°á ááá á áá á á˛áľ á¨áá°áŤ á áááŤá áĽáááĽáŤáááĄ-
$ git checkout -b quarkus 7.2.0.GA
pom.xml áááá á ááá¨á áá
áááá¨áťáá á¨áá.xml ááá áááἠáĽááááŤáá. áłááŠáľ á¨á¤ááľá¤áá¤á áĽááŽá˝á áĽáá˛áŤáľáᣠáááááľ á helloworld á áá ááľáĽ á¨áá¨á°ááá áľááá áŤááąáĄ-
$ mvn io.quarkus:quarkus-maven-plugin:0.23.2:create
áá
á á˝áá á áá˝áá áľ áá, áľáŞáľ 0.23.2 áĽá
á áá ááá. áłááŠáľ áĽá áá á áłá˛áľ áľáŞáśá˝á ááááá, á¨áľáá áľáŞáľ á áľá¨-ááš áá á¨á
áἠááá áĽáá°áá ááá
áá˝áá
á¨áá áŤáá áľááá á¨áá¨á°ááľá ááĽá¨ áááŽá˝ áá° pom.xml áŤáľááŁááĄ-
- ááĽá¨áľ ááá áá á¨áłááŠáľ áĽáŞáľá á¨áááá˝á˘
- á ááľ ááĽáŤááłááą á¨áłááŠáľ áĽááááľ áľáŞáľ áááá¨áá Quarkus BOM (á¨ááłááśá˝ á°á¨á°á) áááľááŁáľá˘
- á¨áłááŠáľ-áá¨á-áááá á áááŹá˝áá á¨áá¸á áĽá á¨áĽáľááľ áááłá á¨ááľá áľ áááááľ á áá áľá˘
- á¨áá°áá áŞáŤ á°ááťááá˝á áááá á á¨á¤á°á ááááŤá˘
á á°á¨ááŞáᣠá áá.xml áá á áĽá á¨áá¨á°ááľá áááŚá˝ áĽáá°ááááá˘
- áááŤáá á áááŁáľ áá á¨áĽááłá áĽá á¨áááŤá á áá áŤáľáááĄáľ . ááááŤáąá á áááĽáá á°á¨á áĽááłáá áĽááľááá°ááá , á¨á፠ááľááἠáŤáľáááááłá .
- áĽááłá á ááľáááľ áá ááááŤáąá á¨áłááŠáľ áá á˛ááľ áá áá°áá áŞáŤ á¨JBoss á¨ááá áá á áŤáľáááááá˘
- áá፠á¨áá áĽá á áááŤá áľá áŤáľáááĄáľ . á¨áááááľá á¨áľáŞáľ ááĽá áááá˝ áá˝ááá˘
- áááŤáá á ááľáááľ áá áá áá°áá áŞáŤ á¨á áá á áá WAR áłááá áá°á á JAR áľáááá˘
- á¨áá¨á°ááľá áĽááá˝ áĽááľá°áŤáááá
- áĽááááąá javax.enterprise:cdi-api áá° io.quarkus:quarkus-arc áááᣠá ááľáááľ á¨áá¨á ááᢠ(á á°ááśáš áá á¨áľ) áá á¨áłááŠáľ ááŤáá፠á¨CDI áĽááá˝ ááá áá°áŁáá˘
- áĽááááľ org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec áá° io.quarkus:quarkus-undertow áááᣠá ááľáááľ á¨áá¨á ááᢠááááŤáąá (á á°ááśáš áá á¨áľ) áá á¨áłááŠáľ á áĽáŤ áá°áá¨áśá˝ áľáá áá°áŁáá˘
- org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec áĽááááľ á áá á¨áá¨ááá¸á áĽááá˝ áá áľáááᣠáĽááľááá°áááá˘
á¨ááá áááŚá˝ áá á¨áá.xml ááá áľáŞáľ á¨áááá á
á¨áá á áá áŤáá mvn io.quarkus:quarkus-maven-plugin:0.23.2:á¨áá ᨠáľááá á¨áá.xml áááá á¨ááá¨á á á°á¨á᪠á ááŽáááą áá á ááŤáł á áŤááľá áááľá á¨áá¨á°ááľá áááá˝ áĽá áá á°áŽá˝ áĽáá°áá¨áá áἠáá áá˘
- ᨠmvnw áĽá mvnw.cmd ááá áĽá á¨.mvn á ááᥠMaven Wrapper áŤáá áľáŞáľ áłááá á¨Maven ááŽáááśá˝á áĽáá˛áŤááą ááá áľáááłáá˘
- Docker á áá (á src/áá/ áááŤ)ᥠáá áá¤á°á áĽá á jvm áááłáá˝ (á¨.dockerignore ááá áá) ááłá Dockerfiles áááá˘
- á¨ááááá˝ á áá (á src/áá/ áá፠ááľáĽ)ᥠáá áŁáś á¨áá°áá áŞáŤ.ááŽááá˛á˛ ááá áĽá ᨠQuarkus index.html áááť áá˝á ááá (áá áá áááá á¨áááááá helloworld Run á¨áááá áááá¨áą)á˘
helloworldá á áľááá
á áááŹá˝áá áááá°á˝ áłááŠáľá á áĽáľááľ ááľ á¨ááŤáľááłáá 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] 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
áľááá , á áá°áŤá ... ááá?
áŤáá¨áŤá ResolutionException á¨HelloWorldServlet ááá (á¨á፠á áŁáᥠorg.jboss.as.quickstarts.helloworld.HelloWorldServlet#HelloService) á áŁá á¨áááá á¨HeloService áááá áá áááᢠá˝áአHelloWorldServlet áááááľ á°ááŞáľ á¨á°á¨á°á° ááłá áŤáľáááááᣠáĽá ááá á áá˝áá (ááá áĽááłá áááąá áĽááá áááá˝ á á ááľ áĽá á ááľáĽ á˘ááá)á˘
áá° ááááľ ááá áá
á¨áá á°ááŞáľ áááá áĽáá - á áĽáááą áĽáá°áá á áááľ ááĽáŤáŞáŤ á¨áááᢠáľááá áááŠáľ áŁáááá ááá áĽáá˛áŤáá ááłá¨á á áá áľá˘ áĽá áá ááá á áᣠááá áľááá á ááá @ApplicationScoped ááĽáŤáŞáŤá áĽáá°áá¨á°áá áá¨á áĽáá˝ááááĄ-
@ApplicationScoped
public class HelloService {
ááľáłááť: áĽáá á¨ááľááľ á áŤáŁá˘á á¨áááááá ááŹá áĽáá˛áŤáá áá áá ááľ áá˝áá (á¨áá á áłá˝ áŤááá ááľáá áááá¨áą) áĽá áá áá áĽáŤáľá áĽáá°áá ááľá¨á á ááĽááľá˘
import javax.enterprise.context.ApplicationScoped;
ááአáŁáá á¨ááś á ááááá˝á áľ áá á ááłáŠ ááľáĽ á¨áľáá áá°á áĽá
á áá ááá áĽááłáá áľ áĽááŁáŹ áŤá°á¨áĽááľ á°ááśášá áŤááĽáĄ
á áá á áááŹá˝áá áĽáá°áá áááľááá áĽááááŤáá ./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]
á áá ááá ááá áŤá áľá á°áľ áááłá.
á¨ááá á áá áááá á ááľááá áá
á áááἠááľáłááťá áá áĽáá°á°ááá á á áłáš ááľáĽ ááááąáľ
áŠá. 4. á¨áłááŠáľ á´á áááť áá˝á˘
á¨áá áá°áá áŞáŤ á¨WebServlet ááĽáŤáŞáŤ á¨áá¨á°ááá á ááľ ááş ááááĄ-
@WebServlet("/HelloWorld")
public class HelloWorldServlet extends HttpServlet {
áľááá
, áá° á áłáš ááľáĽ áĽáááłáá
áŠá. 5ᥠá¨áłááŠáľ á´á áá˝ ááá á áá áá°áá áŞáŤá˘
á°á á, ááá ááá áá°áŤá.
á áá á áŽáą áá áááŚá˝á áĽááľááᢠᨠ./mvnw compile quarkus:dev áľááá á ááá áĽá¨á°áŤ áááá áĽá áĽá áááá ááá á áá á¨áááᢠá áá á°ááłáłá - á áŁá ááá - á áŽáą áá áááŚá˝á ááá°áá á áĽáááá áĽá áłááŠáľ áááá˘á áĽáá´áľ á áááľá ááá áĽáá°ááŤá°áá áááá¨áąá˘
writer.println("<h1>" + helloService.createHelloMessage("Marco") + "</h1>");
á¨áá á áłá˝ áŁáá á á˝á áłá áá˝ áĽááł áá áĽáá°ááłá¨á áááá áŤáľááᥠáĽá áá áááŽá ááá¨áľ áľá¨-áášá áŤáľáąá˘
áŠá. 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
á¨ááš áĽáľáłáľ á ááá áŽáľ áá á¨á°á°á¨á áááŚá˝á áááľááᣠáĽá áłááŠáľ á áŤáľ-á°á á¨ááá á áá á á¨ááááᢠáĽá áá áá á 0.371 á°á¨ááľ áĽáť á°á ááá (áĽáá áá ááᣠ፠âáĽá á á áŁá ááŁá áąáŁáśáá ááŤâ)á˘
helloworld áá° JAR áĽá
á ááááŁáľ
á áá áŽáą áĽáá°áááá áá°áŤáᣠá áá¨á°áá áľáĽáá áĽáá˝áááĄ
$ ./mvnw clean package
áá áľáĽáá á / ááá áá á°á ááľáĽ áááľ JAR áááá˝á áááĽáŤáᥠᨠhelloworld-.jar áááᣠáĽáąá á áá¨á áĄáľá á¨ááŽáááą áááá˝ áĽá ááĽááśá˝ áá á¨á°ááŁá á áá°á á á ááľ ááᢠáĽá helloworld-runner.jar áááᣠáĽáąá á°ááťá JAR ááá˘
áĽáŁáá áá
uber-jar áĽááłááá áἠáá áᣠááááŤáąá ááá áĽááá˝ á ááá á¨áááá áĄáľ áá° / target/lib á áá (áá° JAR ááá áŤááłá¸á) ááᢠáľááá
ᣠáá
áá JAR á¨áá ááá°á ááá á¨áá á áľá°ááá
ááááľáŁ á JAR áĽá
á ááľáĽ áŁáá MANIFEST.MF ááá ááľáĽ áŤáá á¨ááá áąáŤ á áŤá áľááá áááąáá á¨JAR ááá áĽáŤáąá áĽá /lib á áááá áá
áłáľ áŤáľáááááłáᢠá¨áἠá áááá˝ á¨á°áá ááá˝ á¨áá á¨JARs áááá
á¨áĄá á-áá á áááŹá˝áá˝á áĽáá´áľ ááá á áĽáá°áá˝á áááá
áĽáŁááá á áἠáľáá ááá áááá¨áą
á 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]
áá
áá á¨á°á°á¨á á áá áá° á áłá˝á áááą á
ááá ááá áá° á°ááá á°ááťá ááá á áá°áŁá°áĽ áá
áľááá á¨áĽá helloworld á¨áłááŠáľ áĽááá˝á á áá áá áŤáąá á¨áťá á¨á፠áá°áá áŞáŤ áá°áŤáᢠáá á¨á áá áááľ áĽá áá° á¤á°á á°ááťá ááá ááá¨á áá˝ááá˘
GraalVMá á ááŤá áá
á ááááŞáŤ á°á¨á, ááá
á áľááá ááłáŞáŤáá˝á ááŤá áŤáľáááááłá:
1. á áááľ GraalVM 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)
á ááá˝ áľááá° ááááá˝ áá á°á¨á᪠áá¨á áĽá á¨ááŤá áááŞáŤáá˝á áááááľ áááŞáŤáá áááá¨áą
ááá ááá áá° á°ááá
á°ááťá ááá ááááŁáľ
áááŞáŤáá á ááá áĽ
á¤á°á á¨ááá¸á ááá áááá áᣠá¤á°á Maven ááááŤá ááááľ á ááĽá áĄ-
$ ./mvnw package -Pnative
áááŁáłá˝á á ááľ á°áá á¨10 á°á¨ááľ áá áˇáᣠáĽá á¨áá¨á¨áťá ááá áá-áŻá ᨠááá á¨á°áá á¨á á /áłáááľ á áá ááľáĽ ááá˘
á¤á°á helloworld executable á ááľ
á áá°áá á°á¨áᣠá°ááťá á¨áááá ááá/áłáááľ/ááá áá-áŻá á°ááĽáááᢠá áá áĽááľáŹá°ááĄ-
$ ./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]
á á áłáš ááľáĽ áĽáá°áá ááááąáľá˘
áááĽáá!
á áá
á˝áá ááľáĽ á¨á°áĽáŤáŠáľ á¨áłááŠáľ á á
áá á áá áá á¨á፠á áááŹá˝áá˝á á¨áááá áá´ (ááá ááłá á˘á ááá) á áĽááá°á á
áááľ ááľáĽ á áááľ áĽá
á áá ááá á áá áľ áĽáá áĽáááááᢠáá
áá á˛áŤá°áá áĽá á˝ááŽá˝ ááŤááĽáááľ áá˝áá, á áááĽáá á˝áá áá á á¨áá áĽáááááŤáá, á¨á áááá ááťáťáŤáá˝á áááááá á¨áá
á°á¨ áľááľáł áááłá áĽáá´áľ áĽáá°áá፠áĽáááááŤáá, á¨á á ááá á¨áá°áá áŞáŤá áááá á á°áŤá áá°áľ á áľááá á áŤá áá.
ááá: hab.com