1.4. 创建 Getting Started 项目
通过创建一个 get -started 项目,您可以使用简单的 Quarkus 应用程序启动并运行。您可以使用以下方法之一 创建一个 get-started 项目:
- 使用 Apache Maven 和 Quarkus Maven 插件
- 使用 code.quarkus.redhat.com 生成 Quarkus Maven 项目
- 使用 Quarkus 命令行界面(CLI)
先决条件
- 您已准备了您的环境。如需更多信息,请参阅准备您的环境。
流程
-
根据您的要求,选择您要用来创建 get
-started项目的方法。
1.4.1. 使用 Apache Maven 创建 Getting Started 项目 复制链接链接已复制到粘贴板!
您可以使用 Apache Maven 和 Quarkus Maven 插件创建一个 get -started 项目。通过此 入门 项目,您可以使用简单的 Quarkus 应用程序启动并运行。
先决条件
- 您已准备了环境以使用 Maven。如需更多信息,请参阅准备您的环境。
- 您已配置了 Quarkus Maven 存储库。要使用 Maven 创建 Quarkus 应用程序,请使用 Red Hat-hosted Quarkus 存储库。如需更多信息,请参阅为在线存储库配置 Maven settings.xml 文件。
流程
要验证 Maven 是否使用 OpenJDK 11 或 17,Maven 版本是否为 3.8.6 或更高版本,且
mvn可从 PATH 环境变量访问,请输入以下命令:mvn --version
mvn --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果前面的命令没有返回 OpenJDK 11 或 17,请将到 OpenJDK 11 或 17 的路径添加到 PATH 环境变量中,然后再次输入前面的命令。
要生成项目,请输入以下命令之一:
如果使用 Linux 或 Apple macOS,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 Microsoft Windows 命令行,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用 Microsoft Windows PowerShell,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令在
./get-started 目录中创建以下元素:- Maven 项目目录结构
-
org.acme.quickstart.GreetingResource资源在/hello上公开 - 用于以原生模式和 JVM 模式测试应用程序的相关单元测试
-
启动应用程序后,可在
http://localhost:8080上访问的登录页面 -
src/main/docker目录中的 Dockerfile 示例 应用程序配置文件
注意因为 Mandrel 不支持 macOS,所以您可以使用 Oracle GraalVM 在此操作系统上构建原生可执行文件。
您还可以在裸机 Linux 或 Windows 发行版上直接使用 Oracle GraalVM 来构建原生可执行文件。有关此过程的更多信息,请参阅 Oracle GraalVM README 和发行注记。
有关支持的配置的更多信息,请参阅 Red Hat build of Quarkus 支持的配置。
创建目录结构后,在文本编辑器中打开
pom.xml文件并检查文件的内容:pom.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pom.xml文件的<dependencyManagement> 部分包含 Quarkus BOM。因此,您不需要列出pom.xml文件中的单个 Quarkus 依赖项版本。在这个配置文件中,您还可以找到负责打包应用程序的quarkus-maven-plugin插件。查看
pom.xml文件中的quarkus-resteasy-reactive依赖项。这个依赖项允许您开发 REST 应用程序:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
src/main/java/org/acme/quickstart/GreetingResource.java文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此文件包含一个简单的 REST 端点,它将
Hello from RESTEasy Reactive返回为发送到/hello端点的请求。注意使用 Quarkus 时,支持 Jakarta REST (以前称为 JAX-RS)的应用程序类,但不是必需的。
另外,只创建一个GreetingResource类的实例,而不是每个请求的一个实例。您可以使用不同的*Scoped注解来配置它,如ApplicationScoped、RequestScoped等等。
1.4.2. 使用 code.quarkus.redhat.com 创建 Getting Started 项目 复制链接链接已复制到粘贴板!
作为应用程序开发人员,您可以使用 code.quarkus.redhat.com 生成 Quarkus Maven 项目,并自动添加并配置要在应用程序中使用的扩展。另外,code.quarkus.redhat.com 会自动管理将项目编译为原生可执行文件所需的配置参数。
您可以生成 Quarkus Maven 项目,包括以下活动:
- 指定应用程序的基本详情
- 选择您要包含在项目中的扩展
- 使用项目文件生成可下载归档
- 使用自定义命令编译和启动应用程序
先决条件
- 您有一个 Web 浏览器。
- 您已准备了环境以使用 Apache Maven。如需更多信息,请参阅准备您的环境。
- 您已配置了 Quarkus Maven 存储库。要使用 Maven 创建 Quarkus 应用程序,请使用 Red Hat-hosted Quarkus 存储库。如需更多信息,请参阅为在线存储库配置 Maven settings.xml 文件。
可选 : 已安装 Quarkus 命令行界面(CLI),这是您可以在 dev 模式中启动 Quarkus 的方法之一。
如需更多信息 ,请参阅安装 Quarkus CLI。
Quarkus CLI 仅用于 dev 模式。红帽不支持在生产环境中使用 Quarkus CLI。
流程
- 在 Web 浏览器中,导航到 https://code.quarkus.redhat.com。
指定项目的基本详情:
-
输入项目的组名称。name 格式遵循 Java 软件包命名规则,例如
org.acme。 -
输入项目生成的 Maven 工件的名称,如
code-with-quarkus。 选择您要用来编译和启动应用程序的构建工具。您选择的构建工具决定了以下设置:
- 生成的项目的目录结构
- 您生成的项目中使用的配置文件格式
在生成项目后,会显示用于编译和启动 code.quarkus.redhat.com 的自定义构建脚本和命令。
注意红帽仅支持使用 code.quarkus.redhat.com 创建 Quarkus Maven 项目。
-
输入项目的组名称。name 格式遵循 Java 软件包命名规则,例如
指定应用程序项目的更多详情:
- 要显示包含更多应用程序详情的字段,请选择 More options。
-
输入您要用于项目生成的工件的版本。此字段的默认值为
1.0.0-SNAPSHOT。建议使用 语义版本 ;但是,您可以选择指定不同类型的版本控制。 选择是否希望 code.quarkus.redhat.com 将初学者代码添加到项目中。当您添加标记为 "STARTER-CODE" 的扩展时,您可以启用此选项在生成项目时自动为这些扩展创建示例类和资源文件。但是,如果您没有添加提供示例代码的任何扩展,这个选项不会影响生成的项目。
注意code.quarkus.redhat.com 应用程序自动使用最新版本的 Red Hat build of Quarkus。但是,如果需要,可以在生成项目后手动更改为 pom.xml 文件中的较早 BOM 版本,但不建议这样做。
选择要使用的扩展。您选择的扩展作为 Quarkus 应用程序的依赖项包含在内。Quarkus 平台还确保这些扩展与将来的版本兼容。
重要不要在同一项目中使用
主动扩展。RESTEasy和 RESTEasy扩展旁边的 quark 图标(
)表示扩展是 Red Hat build of Quarkus 平台发行版本的一部分。红帽建议从同一平台使用扩展,因为它们被一起测试并验证,因此更易于使用和升级。
您可以启用选项,为标记为"STARTER-CODE"的扩展自动生成初学程序代码。
要确认您的选择,请选择 Generate your application。此时会显示以下项目:
- 下载包含您生成的项目的存档的链接
- 可用于编译和启动应用程序的自定义命令
- 要将带有生成的项目文件的存档保存到机器中,请选择 Download the ZIP。
- 提取存档的内容。
进入包含您提取的项目文件的目录:
cd <directory_name>
cd <directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在 dev 模式中编译并启动应用程序,请使用以下方法之一:
使用 Maven:
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Quarkus CLI:
quarkus dev
quarkus devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.2.1. 红帽构建的 Quarkus 扩展的支持等级 复制链接链接已复制到粘贴板!
红帽为 code.quarkus.redhat.com 上可用的扩展提供了 不同级别的支持,您可以添加到 Quarkus 项目。每个扩展名称旁的标签代表支持级别。
红帽不支持在生产环境中使用未标记扩展。
红帽为 Quarkus 扩展提供以下级别的支持:
| 支持级别 | 描述 |
|---|---|
| 支持 | 红帽完全支持在生产环境中使用企业应用程序的扩展。 |
| TECH-PREVIEW | 红帽在 技术预览功能支持范围 下,对生产环境提供有限的支持。 |
| DEV-SUPPORT | 红帽不支持在生产环境中使用扩展,但红帽开发人员支持它们在开发新应用程序时提供的核心功能。 |
| 弃用 | 红帽计划将扩展替换为提供相同功能的最新技术或实施。 |
| STARTER-CODE | 您可以自动生成扩展示例代码。 |
点击每个扩展旁的箭头图标(DESTINATION),您可以扩展 overflow 菜单来访问该扩展的进一步操作。例如:
- 在命令行中使用 Quarkus Maven 插件将扩展添加到现有项目中
-
复制 XML 片段,将扩展添加到项目的
pom.xml文件中 -
获取每个扩展的
groupId、artifactId、和版本 - 打开扩展指南
您可以使用 Quarkus 命令行界面(CLI)创建 get -started 项目。
使用 Quarkus CLI,您可以创建项目、管理扩展并运行构建和开发命令。
Quarkus CLI 仅用于 dev 模式。红帽不支持在生产环境中使用 Quarkus CLI。
先决条件
- 已安装 Quarkus CLI。如需更多信息,请参阅准备您的环境。
- 您已将 Quarkus 开发人员工具配置为访问扩展 registry 中的扩展。如需更多信息,请参阅配置红帽构建的 Quarkus 扩展 registry 客户端。
流程
要生成项目,在命令终端中输入以下命令:
quarkus create && cd code-with-quarkus
quarkus create && cd code-with-quarkusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您还可以指定 'app' 子命令,例如
quarkus create app。但是,这不是强制要求,因为如果没有指定 'app' 子命令就意味着它。使用此命令,在当前工作目录下的名为 'code-with-quarkus' 的文件夹中创建 Quarkus 项目。
默认情况下,
groupId、artifactId和version属性使用以下默认值指定:- groupId='org.acme'
- artifactId='code-with-quarkus'
version='1.0.0-SNAPSHOT'
要更改
groupId,artifactId, 和version属性的值,请发出quarkus create命令并在 CLI 中指定以下语法:groupId:artifactId:version例如,
quarkus create app mygroupId:myartifactid:version
注意要查看所有可用 Quarkus 命令的信息,请指定
help参数:quarkus --help
quarkus --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在文本编辑器中查看
src/main/java/org/acme/GreetingResource.java文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此文件包含一个简单的 REST 端点,它将
Hello from RESTEasy Reactive返回为发送到/hello端点的请求。
验证
- 在 dev 模式中编译并启动您的应用程序。如需更多信息,请参阅 编译并启动红帽构建的 Quarkus Getting Started 项目。
- 从 Quarkus CLI 软件包并运行您的 Getting Started 项目。如需更多信息,请参阅打包并运行红帽构建的 Quarkus 入门应用程序。