แแแแแ แฏแแแ แงแแแแแก แแ แแแแแแ, แแฅ แแ แแก แแแแแฎแ แแแกแขแ Quarkus-แแก แกแแ แแแแแ!
แแฅ แแแแจแแแแแแแแแแ แแฆแแแแจแแแก, แ แแ Quarkus แแ 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
แกแแแแแแแแแแจแ, แแ แแแแแแแชแแแก แแ แกแ แกแแฎแแแแแแ แแแแแแแ, แแแแ แแ แฉแแแ แแแก แแแแก แแแแชแ แแ แแแชแแแแ แฃแแแ แแแแแ แแแแแแ. แแแแขแแ, แแแ แแแ แ แแแจแ, แแแแแ แจแแแฎแแแแ แแ แแแแแแแชแแแก แแแกแ แแ แแแแแแแฃแ แ แคแแ แแแ.
Helloworld-แแก แแแแแแแแแ
1. แแแฎแกแแแแ แขแแ แแแแแแ แแ แแแแแแแ JBoss EAP แกแแฅแแฆแแแแแก แซแแ แจแ (แจแแแแซแแแแ แฉแแแแขแแแ แแแ
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. แแแฎแกแแแแ แแ แแฃแแแ แจแ
แแ แแแฏแ. 1. JBoss EAP-แแก แแแแแแ แ แแแแ แแ.
4. แแแฐแงแแแแ แกแแฎแแแแซแฆแแแแแแแจแ แแแแแแแแแแก
$ mvn clean install wildfly:deploy
แแ แแ แซแแแแแแก แฌแแ แแแขแแแแ แจแแกแ แฃแแแแแก แจแแแแแ, แแฃแ แแแแจแ แแแแฎแแแ แแกแแแแกแ แ แแ:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.224 s
แแกแ แ แแ, helloworld แแแแแแแชแแแก แแแ แแแ แแแแแงแแแแแแก JBoss EAP-แแ แกแฃแ แ แแฆแแช 8 แฌแแแแ แแแกแญแแ แแ.
Helloworld-แแก แขแแกแขแแ แแแ
แแแแฅแแแแแ แแแแชแ แแ แแแกแขแ แฃแฅแชแแแก แแแฎแแแแแ
แแ แแแฏแ. 2. แแ แแแแแแแฃแ แ Hello World JBoss EAP-แแกแแแ.
แชแแแแแแแแแแก แจแแขแแแ
แจแแชแแแแแ แจแแงแแแแแก แแแ แแแแขแ แ createHelloMessage (แกแขแ แแฅแแแแก แกแแฎแแแ) World-แแแ Marco-แแ:
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 แขแแ แแแแแแแก แคแแแฏแแ แแจแ.
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 แฎแจแแ แแ แฃแจแแแแก แแฎแแ แแแ แกแแแแก, แจแแแแซแแแแ แแแแแแ, แ แแแแแ แแแ แกแแแ แฃแแฎแแแกแ แแแแกแแแขแแ
แแแแแ แแแงแแแแแแ แแ แซแแแแแ แฉแแกแแแแก แจแแแแแ แแแแแแแขแแแก pom.xml-แจแ:
- แแแแกแแแ , แ แแแแแแช แแแแกแแแฆแแ แแแก Quarkus-แแก แแแแแกแแงแแแแแแ แแแ แกแแแก.
- แแแแแ Quarkus BOM-แแก แแแแแ แขแแกแแแแก, แ แแแ แแ แแแแแแขแแก แแแ แกแแ แแแแแแฃแแ Quarkus แแแแแแแแแแฃแแแแแกแแแแก.
- quarkus-maven-plugin แแแกแฃแฎแแกแแแแแแแแ แแแแแแแชแแแก แจแแคแฃแแแแแ แแ แแแแแแแแ แแแแก แ แแแแแแก แฃแแ แฃแแแแแงแแคแแแ.
- แแจแแแแแฃแ แ แแ แแคแแแ แแแแแแแชแแแก แจแแกแ แฃแแแแแแแแแก แจแแกแแฅแแแแแแ.
แแแ แแ แแแแกแ, แฉแแแ แฎแแแแ แแแแแแแแ แจแแแแแ แชแแแแแแแแแก pom.xml-แจแ:
- แฉแแแ แแแแแแฆแแแ แขแแแก แแแแแแแแ แแ แแแแแแกแแแ แขแแแแก แแแแแ. แแแแแแแแ แจแแแแแ แแขแแแแ แฉแแแ แฌแแแจแแแ แแแแแก, แฃแแแ แจแแแแแแฎแแ .
- แฉแแแ แแฎแกแแแ แแแแแก, แ แแแแแ Quarkus-แแแ แแฃแจแแแแแกแแก แแ แแแแแแแชแแแก แแฆแแ แแแกแญแแ แแแแ JBoss-แแก แแจแแแแแ แแแแ.
- แแแแแแขแแ แขแแแ แแ แแแแแแแกแแ แขแแแแก แฅแแแจ. แแฅแแแ แจแแแแซแแแแ แแแฃแแแแแ แแฅแแแแแแแก แกแแกแฃแ แแแแ แแแ แกแแแก แแแแแ แ.
- แฉแแแ แแฎแกแแแ แขแแแก, แ แแแแแ แแก แแแแแแแชแแ แแฆแแ แแ แแก WAR, แแ แแแแ แฉแแแฃแแแแ แแแ JAR.
- แฉแแแ แแแชแแแแ แจแแแแแ แแแแแแแแแแฃแแแแแแก:
- แฉแแแ แแชแแแแ javax.enterprise:cdi-api แแแแแแแแแแฃแแแแแก io.quarkus:quarkus-arc-แแ, แแฎแกแแแ แแแฌแแแแแฃแ-แก, แ แแแแแ (แแแแฃแแแแขแแแแก แแแฎแแแแแ) Quarkus-แแก แแก แแแคแแ แแแแแ แฃแแ แฃแแแแแงแแคแก CDI แแแแแแแแแแฃแแแแแแแก แแแแฅแชแแแก.
- แฉแแแ แแชแแแแ แแแแแแแแแแฃแแแแแก org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec io.quarkus:quarkus-underdow-แแ, แแฎแกแแแ แแแฌแแแแแฃแ-แก, แแแแแแแแ (แแแแฃแแแแขแแแแก แแแฎแแแแแ) แแก Quarkus แแแคแแ แแแแแ แฃแแ แฃแแแแแงแแคแก servlet แแฎแแ แแแญแแ แ 'ov.
- แฉแแแ แแฎแกแแแ org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec แแแแแแแแแแฃแแแแแก, แ แแแแแ แแแก แแฎแแแฎแแ แจแแแชแแแแแ แแแแแแแแแแฃแแแแแแ.
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-แแก แแแแฅแชแแฃแ แ แแแแแแแแแ แ แแ แแแกแ แแแแแ แจแแฃแซแแแแแแแ (แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแ แแแ แแแแกแ แแ แแกแ แแ แแแแแ แแแแแขแจแแ).
แแแแ แฃแแแแแก แแ แแ
แแแแแ แจแแแฎแแแแ HelloService แแแแกแก - แแแก แแแแแแแแแ แแ แแฅแแก แแกแแแ แแแแขแแชแแ. แแแแขแแ, แแก แฃแแแ แแแแแแขแแก, แ แแแ แแแแ แแฃแกแแ แจแแซแแแก แแแแแแก แแแซแแแแ แแ แแแแแ. แแ แ แแแแแ แแก แแ แแก แแแฅแแแแฅแแแแแก แแ แแฅแแแ แแแแแฅแขแ, แฉแแแ แจแแแแแซแแแ แแแ แขแแแแ แแแแแแแขแแ @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. Quarkus-แแก แแแแแแแแ แแแแก แกแแฌแงแแกแ แแแแ แแ.
แแ แแแแแแแชแแแก WebServlet แแแแขแแชแแ แจแแแชแแแก แจแแแแแ แแแแขแแฅแกแขแฃแ แแแแแแ แขแแแแก:
@WebServlet("/HelloWorld")
public class HelloWorldServlet extends HttpServlet {
แแแแขแแ, แฉแแแ แแ แแฃแแแ แจแ แแแแแแแแแแ แ
แแ แแแฏแ. 5: Quarkus dev แแแแ แแ Hello World แแแแแแแชแแแกแแแแก.
แแกแ, แงแแแแแคแแ แ แแฃแจแแแแก.
แแฎแแ แแแแแ แจแแแแขแแแแ แชแแแแแแแแแ แแแแจแ. แแแแแแแแแกแฌแแแแ, แ แแ ./mvnw compile quarkus:dev แแ แซแแแแแ แฏแแ แแแแแ แแฃแจแแแแก แแ แฉแแแ แแ แแแแแ แแแ แแแก แจแแฉแแ แแแแก. แแฎแแ แจแแแแชแแแแ แแแแแแแงแแแแ แแแแแ - แซแแแแแ แขแ แแแแแแฃแ แ - แชแแแแแแแแแ แแแแแ แแแแจแ แแ แแแแฎแแ, แ แแแแ แฃแแแแแแแแก Quarkus แแแแแแแแแ แก แชแฎแแแ แแแแก:
writer.println("<h1>" + helloService.createHelloMessage("Marco") + "</h1>");
แจแแแแแฎแแ แคแแแแ แแ แจแแแแแ แแแแแแฎแแแ แแแ แแแแ แแ Hello Marco-แก แกแแแแฎแแแแ, แ แแแแ แช แแก แแแฉแแแแแแแ แฅแแแแแ แแแชแแแฃแ แแแ แแแแก แกแฃแ แแแแ:
แแ แแแฏแ. 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 แแแแแแแชแแแแ, แแแฎแแแ, แแฌแแแแ แกแแฎแแแแซแฆแแแแแแแก
แแแฃแจแแแ 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]
แงแแแแแแแ แแแแก แจแแแแแ, แแแแแแแ แแฅแแแแก แแ แแฃแแแ แจแ
helloworld-แแก แจแแแแแแ แแจแแแแแฃแ แจแแกแ แฃแแแแแ แคแแแแจแ
แแกแ แ แแ, แฉแแแแ helloworld แแฃแจแแแแก แ แแแแ แช แแแแแฃแแแแแแแแ Java แแแแแแแชแแ Quarkus-แแก แแแแแแแแแแฃแแแแแแแก แแแแแงแแแแแแ. แแแแ แแ แจแแแแซแแแแ แฃแคแ แ แจแแ แก แฌแแฎแแแแแ แแ แแแแแแฅแชแแแ แแก แแจแแแแแฃแ แจแแกแ แฃแแแแแ แคแแแแแ.
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)
แแแแแขแแแแแ แแแคแแ แแแชแแแกแแแแก แแ แกแฎแแ OS-แแแแ แแแกแขแแแแชแแแก แแแกแขแ แฃแฅแชแแแแแกแแแแก แแฎแแแแ แกแแฎแแแแซแฆแแแแแแ
Helloworld-แแก แแจแแแแแ แแจแแแแแฃแ แจแแกแ แฃแแแแแ แคแแแแจแ
แกแแฎแแแแซแฆแแแแแแแก แแแแฎแแ
แแจแแแแแฃแ แ แจแแกแ แฃแแแแแแ แคแแแแแก แจแแกแแฅแแแแแแ, แแฅแแแ แฃแแแ แฉแแ แแแ แแจแแแแแฃแ แ 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]
แแกแแ แแแฎแกแแแแ แแ แแฃแแแ แจแ
ะัะพะดะพะปะถะตะฝะธะต ัะปะตะดัะตั!
แฉแแแ แแแฏแแ แ, แ แแ แแ แแแกแขแจแ แแแแฎแแแฃแแ Quarkus-แแก แจแแกแแซแแแแแแแแแแก แแแแแงแแแแแแ Java แแแแแแแชแแแแแก แแแแแ แแแแแชแแแก แแแแแแ (แแฃแแชแ แแแ แขแแแ แแแแแแแแแก แแแแแงแแแแแแ) แแฅแขแแฃแ แแ แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ แ แแแแฃแ แชแฎแแแ แแแแจแ. แแแแแแ แแ, แแฅแแแ แกแแแแ แแฃแแแ แจแแฎแแแแแแ แฃแแแ แแ แแ แแแแแแแก, แ แแแแแกแแช แแแฌแแแแแ แแ แแแแแแฎแแแแแ แจแแแแแ แแแกแขแจแ, แกแแแแช แแแกแแฃแแ แแแ แแแแแ, แแฃ แ แแแแ แแแแแแแแ แแแฎแกแแแ แแแแก แแแฎแแแ แแแ แจแแกแ แฃแแแแแก แแแฃแแฏแแแแกแแแแก แจแแกแแคแแกแแแแแ, แ แแช แแแแจแแแแแแแแแ แแแฌแแแแ แแแแแแแชแแแก แแแแแ แแแแแชแแแก แแแแแ แแ แแชแแกแแก.
แฌแงแแ แ: www.habr.com