创建第一个应用程序
-
引导应用程序 -
创建Jakarta REST端点 -
注射豆类 -
功能测试 -
应用程序的打包
1.前提条件
-
大约15分钟 -
集成开发环境 -
JDK 17+安装有 JAVA_主页 适当配置 -
Apache Maven 3.9.6版 -
(可选) Quarkus CLI(Quarkus命令行界面) 如果你想用它
|
4.引导项目
-
如果使用cmd,(不要使用反斜杠 \ 并将所有内容放在同一条线上) -
如果使用Powershell,请包装 -D类 参数用双引号括起来,例如。 “-DprojectArtifactId=开始”
-
Maven构造 -
一个 org.acme网站。 问候语资源 资源公开于 /你好 -
相关的单元测试 -
可在上访问的登录页 http://localhost:8080 启动应用程序后 -
例子 Dockerfile文件 两个文件 本地的 和 联合虚拟机 模式 src/main/docker -
应用程序配置文件
<依赖性管理> <依赖项> <依赖性> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>${quarkus.platform.artifact-id} <version>${quarkus.platform.version} <type>pom</type> <scope>导入</scope> </依赖性> </依赖项> </dependencyManagement> <构建> <插件> <插件> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>quarkus maven插件</artifactId> <version>${quarkus.platform.version} <extensions>true</extensions> <执行> <执行> <目标> <goal>构建</goal> <goal>生成代码 生成代码测试 </目标> </执行> </执行> </plugin> </插件> </构建>
-
Quarkus Gradle插件 -
一个 强制平台 Quarkus BOM指令
<依赖性> <groupId>io.quarkus</groupId> <artifactId>quarkus-rest</artifactId> </依赖性>
实现(“io.quarkus:quarkus-rest”)
4.1. 雅加达REST资源
软件包org.acme; 导入jakarta.ws.rs.GET; 导入jakarta.ws.rs.Path; 导入jakarta.ws.rs.Produces; 导入jakarta.ws.rs.core。 媒体类型; @路径(“/hello”) 公共课问候资源{ @GET(获取) @产品(MediaType.TEXT_PLAIN) public字符串hello(){ return“来自Quarkus REST的Hello”; } }
|
5.运行应用程序
夸克偏差
./mvnw夸克:dev
./gradlew--console=普通quarkusDev
[信息]--------------------<org.acme:getting-started>--------------------- [信息]建筑开始1.0.0-SNAPSHOT [信息]---------------------------------[jar]--------------------------------- [信息] [信息]---maven-resources-plugin:2.6:resources(default-resource)@getting-started--- [信息]使用“UTF-8”编码复制筛选的资源。 [信息]跳过不存在的资源目录<path>/getting-started/src/main/resources [信息] [信息]---maven-compiler-plugin:3.1:compile(default-compile)@getting-started--- [信息]检测到更改-重新编译模块! [信息]将2个源文件编译为<path>/getting-started/target/classes [信息] [信息]---quarkus-maven-plugin:<版本>:dev(default-cli)@getting-started--- 侦听地址为5005的传输dt_socket 2019-02-28 17:05:22347信息[io.qua.dep.QuarkusAugmentor](main)开始夸克增强 2019-02-28 17:05:22635信息[io.qua.dep.QuarkusAugmentor](主)Quarkus增强在288ms内完成 2019-02-28 17:05:22770 INFO[io.quarkus](main)quarkus以0.668秒开始。 聆听: http://localhost:8080 2019-02-28 17:05:22771 INFO[io.quarkus](main)已安装功能:[cdi,rest]
$curl-w“\n” http://localhost:8080/hello 来自Quarkus REST的您好
|
6.使用注射
包装组织; 导入jakarta.enterprise.context。 应用程序范围; @应用程序范围 公共课问候服务{ 公共字符串问候语(字符串名称){ return“hello”+名称; } }
软件包org.acme; 导入jakarta.inject。 注入; 导入jakarta.ws.rs.GET; 导入jakarta.ws.rs.Path; 导入jakarta.ws.rs.Produces; 导入jakarta.ws.rs.core。 媒体类型; @路径(“/hello”) 公共课问候资源{ @注入 问候服务; @GET(获取) @产品(MediaType.TEXT_PLAIN) @路径(“/greeting/{name}”) 公共字符串问候语(字符串名称){ 退货服务。问候语(姓名); } @GET(获取) @产品(MediaType.TEXT_PLAIN) public字符串hello(){ return“来自Quarkus REST的Hello”; } }
夸库斯-德夫
./mvnw夸克:dev
./gradlew--console=普通quarkusDev
$curl-w“\n” http://localhost:8080/你好/问候/夸库斯 你好quarkus
7.发展模式
8.测试
<依赖性> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>测试 </依赖性> <依赖性> <groupId>请放心</groupId> <artifactId>重置保险 <scope>测试 </依赖性>
测试实现(“io.quarkus:quarkus-junit5”) testImplementation(“io.rest-assered:rest-assured”)
<插件> <artifactId>maven-surefireplugin</artifactId> <version>${surefireplugin.version} <配置> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager。 日志管理器</java.util.logging.manager> <maven.home>${maven.hame}</maven.home> </systemPropertyVariables> </配置> </plugin>
软件包org.acme; 导入io.quarkus.test.junit。 Quarkus测试; 导入org.junit.jupiter.api。 测试; 导入java.util。 UUID; 导入静态io.restsured。 RestAssured.given公司; 导入静态org.hamcrest。 CoreMatchers.is; @Quarkus测试 公共类GreetingResourceTest{ @测试 (1) 公共void testHelloEndpoint(){ 给定() .when().get(“/hello”) 然后() .statusCode(200) (2) .body(是(“来自Quarkus REST的Hello”); } @测试 公共void testGreetingEndpoint(){ 字符串uuid=uuid.randomUUID().toString(); 给予() .pathParam(“名称”,uuid) .when().get(“/hello/greeting/{name}”) 然后() .statusCode(200) .body(is(“hello”+uuid)); } }
|
|
./mvnw测试
@TestHTTPResource(“/myservlet”) URL testUrl;
9.使用多模块项目或外部模块
10.打包并运行应用程序
夸库斯构造
./mvnw安装
./gradlew版本
-
启动getting-started-1.0.0-SNAPSHOT.jar -它只包含项目的类和资源,是常规的 Maven构建产生的工件-它是 不 可运行的罐子; -
这个 quarkus-app软件 包含 quarkus-run.jar jar文件-作为可执行文件 罐子 .请注意,它不是 吕贝尔贾尔 作为 依赖项被复制到的子目录中 quarkus-app/lib/ .
|
|
11.配置横幅
12.非应用程序端点
-
/问题/健康 -
/q/指标 -
/q/openapi(开放api) -
/问题/信息
13.接下来是什么?
-
在单个命令行中构建项目 -
启用 发展模式 (热重新加载) -
在您喜爱的IDE中导入项目 -
等等