1.4. 创建 Getting Started 项目
通过创建 getting-started 项目,您可以使用简单的 Quarkus 应用程序启动并运行。您可以使用以下方法之一创建 getting-started 项目:
- 使用 Apache Maven 和 Quarkus Maven 插件
- 使用 code.quarkus.redhat.com 生成 Quarkus Maven 项目
- 使用 Quarkus 命令行界面(CLI)
先决条件
- 您已为您的环境做好准备。如需更多信息,请参阅准备您的环境。
流程
-
根据您的要求,选择您要用来创建
获取的项目的方法。
1.4.1. 使用 Apache Maven 创建 Getting Started 项目 复制链接链接已复制到粘贴板!
您可以使用 Apache Maven 和 Quarkus Maven 插件创建一个 getting-started 项目。通过这个 get -started 项目,您可以使用简单的 Quarkus 应用程序启动并运行。
先决条件
- 您已准备了使用 Maven 的环境。如需更多信息,请参阅准备您的环境。
- 您已配置了 Quarkus Maven 存储库。要使用 Maven 创建 Quarkus 应用程序,请使用 Red Hat-hosted Quarkus 存储库。如需更多信息,请参阅为在线存储库配置 Maven settings.xml 文件。
流程
要验证 Maven 是否使用 OpenJDK 17 或 21,Maven 版本是否为 3.8.6 或更高版本,且
mvn可从 PATH 环境变量访问,请输入以下命令:mvn --version
mvn --versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果前面的命令没有返回 OpenJDK 17 或 21,请将路径添加到 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 项目目录结构
-
在
/hello上公开的org.acme.quickstart.GreetingResource资源 - 相关的单元测试,用于在原生模式和 JVM 模式中测试您的应用程序
-
启动应用程序后可以访问
http://localhost:8080的登录页面 -
src/main/docker目录中的 Dockerfile 示例 应用程序配置文件
注意因为 Mandrel 不支持 macOS,所以您可以使用 Oracle GraalVM 在此操作系统上构建原生可执行文件。
您还可以通过直接在裸机 Linux 或 Windows 发行版上使用 Oracle GraalVM 来构建原生可执行文件。有关此过程的更多信息,请参阅 Oracle GraalVM README 和发行注记。
有关支持的配置的更多信息,请参阅 红帽构建的 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-rest(以前称为quarkus-resteasy-reactive)依赖项。此依赖项允许您使用 Jakarta REST 注解来开发 REST 应用程序:<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-rest</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-rest</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意从红帽构建的 Quarkus 版本 3.15 开始,
quarkus-resteasy-reactive扩展被重命名为quarkus-rest。使用quarkus-resteasy-reactive依赖项的应用程序会被邀请更新其依赖项。已设置了重新定位以避免中断,但计划在以后的发行版本中删除它们。查看
src/main/java/org/acme/quickstart/GreetingResource.java文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此文件包含一个简单的 REST 端点,它将
Hello from Quarkus REST返回为您发送到/hello端点的请求。注意使用 Quarkus 时,支持 Jakarta REST (以前称为 JAX-RS)的
Application类,但并不需要。另外,默认情况下,只创建一个GreetingResource类实例,而不是每个请求一个。您可以使用不同的*Scoped注解来配置此功能,如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 主要用于开发目的,包括创建、更新和构建 Quarkus 项目等任务。但是,红帽不支持在生产环境中使用 Quarkus CLI。
流程
- 在您的 Web 浏览器中,前往 https://code.quarkus.redhat.com。
从可用版本列表中,选择您需要的 Red Hat build of Quarkus 版本。
注意code.quarkus.redhat.com 应用程序自动使用最新版本的红帽构建的 Quarkus。这是首选选项。但是,如果您需要,可以在生成项目后手动更改为
pom.xml文件中的较早 BOM 版本,但不建议这样做。指定项目的基本详情:
-
输入项目的组名称。名称格式遵循 Java 软件包命名约定;例如,
org.acme。 -
输入项目生成的 Maven 工件的名称,如
code-with-quarkus。 选择您要用来编译和启动应用程序的构建工具。您选择的构建工具决定了以下设置:
- 生成的项目的目录结构
- 生成的项目中使用的配置文件的格式
在生成项目后,用于编译和启动 code.quarkus.redhat.com 的应用程序的自定义构建脚本和命令
注意红帽仅支持使用 code.quarkus.redhat.com 来创建 Quarkus Maven 项目。
-
输入项目的组名称。名称格式遵循 Java 软件包命名约定;例如,
指定应用程序项目的更多详情:
要显示包含更多应用程序详情的字段,请选择 More options。
-
输入您要用于项目生成的工件的版本。此字段的默认值为
1.0.0-SNAPSHOT。首选使用 语义版本,但您可以选择指定不同类型的版本。 - 选择是否希望 code.quarkus.redhat.com 将入门代码添加到项目中。将标记为"STARTER-CODE"的扩展添加到项目中时,您可以启用此选项,以便在生成项目时自动为这些扩展创建示例类和资源文件。但是,如果您没有添加提供示例代码的任何扩展,这个选项不会影响生成的项目。
image::additional-app-details-project-generator.png["Screenshot of the application details 部分的 code.quarkus.redhat.com 站点,显示带有额外应用程序详情"] 的扩展表单
选择要使用的扩展。Quarkus 应用程序包含您选择的扩展作为依赖项。Quarkus 平台还确保这些扩展与将来的版本兼容。
重要不要在同一项目中使用
RESTEasy和Quarkus REST扩展。两者都提供相似的功能,但它们的运作方式有所不同。首选使用Quarkus REST。扩展旁边的 quark 图标(
)表示扩展是红帽构建的 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 | |
| 预览 | 红帽不支持在生产环境中使用的扩展。只在 Quarkus 社区版本中提供扩展。 |
| DEV-SUPPORT | 红帽不支持在生产环境中使用的扩展,但红帽开发人员支持他们在开发新应用程序时提供的核心功能。 |
| 弃用 | 红帽计划使用提供相同功能的最新技术或实施来替换扩展。 |
| STARTER-CODE | 您可以为扩展自动生成示例代码。 |
通过单击每个扩展旁边的箭头图标(InventoryService),您可以扩展溢出菜单来访问该扩展的进一步操作。例如:
- 在命令行中使用 Quarkus Maven 插件将扩展添加到现有项目
-
复制 XML 片段,将扩展添加到项目的
pom.xml文件中 -
获取每个扩展的
groupId、artifactId和版本 - 打开扩展指南
1.4.3. 使用 quarkus CLI 创建 Getting Started 项目 复制链接链接已复制到粘贴板!
您可以使用 Quarkus 命令行界面(CLI)创建 获取 的项目。
使用 Quarkus CLI,您可以创建项目、管理扩展并运行构建和开发命令。
Quarkus CLI 主要用于开发目的,包括创建、更新和构建 Quarkus 项目等任务。但是,红帽不支持在生产环境中使用 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 Quarkus REST返回为您发送到/hello端点的请求。
验证
- 以 dev 模式编译和启动应用程序。如需更多信息,请参阅 编译和启动 Red Hat build of Quarkus Getting Started 项目。
- 从 Quarkus CLI 软件包并运行 Getting Started 项目。如需更多信息,请参阅打包并运行红帽构建的 Quarkus 入门应用程序。