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 应用程序启动并运行。

先决条件

流程

  1. 要验证 Maven 是否使用 OpenJDK 17 或 21,Maven 版本是否为 3.8.6 或更高版本,且 mvn 可从 PATH 环境变量访问,请输入以下命令:

    mvn --version
    Copy to Clipboard Toggle word wrap
  2. 如果前面的命令没有返回 OpenJDK 17 或 21,请将路径添加到 PATH 环境变量中,然后再次输入前面的命令。
  3. 要生成项目,请输入以下命令之一:

    • 如果使用 Linux 或 Apple macOS,请输入以下命令:

      mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.15.7.redhat-00001:create \
          -DprojectGroupId=org.acme \
          -DprojectArtifactId=getting-started \
          -DplatformGroupId=com.redhat.quarkus.platform \
          -DplatformVersion=3.15.7.redhat-00001 \
          -DclassName="org.acme.quickstart.GreetingResource" \
          -Dpath="/hello"
      cd getting-started
      Copy to Clipboard Toggle word wrap
    • 如果使用 Microsoft Windows 命令行,请输入以下命令:

      mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.15.7.redhat-00001:create
      -DprojectGroupId=org.acme -DprojectArtifactId=getting-started
      -DplatformGroupId=com.redhat.quarkus.platform
      -DplatformVersion=3.15.7.redhat-00001
      -DclassName="org.acme.quickstart.GreetingResource"
      -Dpath="/hello"
      Copy to Clipboard Toggle word wrap
    • 如果使用 Microsoft Windows PowerShell,请输入以下命令:

      mvn com.redhat.quarkus.platform:quarkus-maven-plugin:3.15.7.redhat-00001:create
      "-DprojectGroupId=org.acme"
      "-DprojectArtifactId=getting-started"
      "-DplatformVersion=3.15.7.redhat-00001"
      "-DplatformGroupId=com.redhat.quarkus.platform"
      "-DclassName=org.acme.quickstart.GreetingResource"
      "-Dpath=/hello"
      Copy to Clipboard Toggle word wrap

      这些命令在 ./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 支持的配置

  4. 创建目录结构后,在文本编辑器中打开 pom.xml 文件并检查文件的内容:

    pom.xml

    <project>
      ...
      <properties>
         ...
         <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
         <quarkus.platform.group-id>com.redhat.quarkus.platform</quarkus.platform.group-id>
         <quarkus.platform.version>3.15.7.redhat-00001</quarkus.platform.version>
         ...
      </properties>
      ...
      <dependencyManagement>
          <dependencies>
            <dependency>
              <groupId>${quarkus.platform.group-id}</groupId>
              <artifactId>${quarkus.platform.artifact-id}</artifactId>
              <version>${quarkus.platform.version}</version>
              <type>pom</type>
              <scope>import</scope>
            </dependency>
          </dependencies>
      </dependencyManagement>
      ...
      <build>
          ...
          <plugins>
            ...
            <plugin>
              <groupId>${quarkus.platform.group-id}</groupId>
              <artifactId>quarkus-maven-plugin</artifactId>
              <version>${quarkus.platform.version}</version>
              <extensions>true</extensions>
              <executions>
                <execution>
                  <goals>
                    <goal>build</goal>
                    <goal>generate-code</goal>
                    <goal>generate-code-tests</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            ...
          </plugins>
          ...
      </build>
     ...
    </project>
    Copy to Clipboard Toggle word wrap

    pom.xml 文件的 <dependencyManagement > 部分包含 Quarkus BOM。因此,您不需要在 pom.xml 文件中列出单个 Quarkus 依赖项的版本。在此配置文件中,您还可以找到负责打包应用程序的 quarkus-maven-plugin 插件。

  5. 请注意 pom.xml 文件中的 quarkus-rest (以前称为 quarkus-resteasy-reactive)依赖项。此依赖项允许您使用 Jakarta REST 注解来开发 REST 应用程序:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-rest</artifactId>
    </dependency>
    Copy to Clipboard Toggle word wrap
    注意

    从红帽构建的 Quarkus 版本 3.15 开始,quarkus-resteasy-reactive 扩展被重命名为 quarkus-rest。使用 quarkus-resteasy-reactive 依赖项的应用程序会被邀请更新其依赖项。已设置了重新定位以避免中断,但计划在以后的发行版本中删除它们。

  6. 查看 src/main/java/org/acme/quickstart/GreetingResource.java 文件:

    import jakarta.ws.rs.GET;
    import jakarta.ws.rs.Path;
    import jakarta.ws.rs.Produces;
    import jakarta.ws.rs.core.MediaType;
    
    @Path("/hello")
    public class GreetingResource {
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String hello() {
            return "Hello from Quarkus REST";
        }
    }
    Copy to Clipboard Toggle word wrap

    此文件包含一个简单的 REST 端点,它将 Hello from Quarkus REST 返回为您发送到 /hello 端点的请求。

    注意

    使用 Quarkus 时,支持 Jakarta REST (以前称为 JAX-RS)的 Application 类,但并不需要。另外,默认情况下,只创建一个 GreetingResource 类实例,而不是每个请求一个。您可以使用不同的 *Scoped 注解来配置此功能,如 RequestScoped

作为应用程序开发人员,您可以使用 code.quarkus.redhat.com 应用程序生成 Quarkus Maven 项目,并自动添加和配置要在应用程序中使用的扩展。另外,code.quarkus.redhat.com 会自动管理将项目编译到原生可执行文件所需的配置参数。

您可以生成 Quarkus Maven 项目,包括以下活动:

  • 指定应用程序的基本详情
  • 选择您要包含在项目中的扩展
  • 使用项目文件生成可下载存档
  • 使用自定义命令编译和启动应用程序

先决条件

注意

Quarkus CLI 主要用于开发目的,包括创建、更新和构建 Quarkus 项目等任务。但是,红帽不支持在生产环境中使用 Quarkus CLI。

流程

  1. 在您的 Web 浏览器中,前往 https://code.quarkus.redhat.com
  2. 从可用版本列表中,选择您需要的 Red Hat build of Quarkus 版本。

    注意

    code.quarkus.redhat.com 应用程序自动使用最新版本的红帽构建的 Quarkus。这是首选选项。但是,如果您需要,可以在生成项目后手动更改为 pom.xml 文件中的较早 BOM 版本,但不建议这样做。

  3. 指定项目的基本详情:

    1. 输入项目的组名称。名称格式遵循 Java 软件包命名约定;例如,org.acme
    2. 输入项目生成的 Maven 工件的名称,如 code-with-quarkus
    3. 选择您要用来编译和启动应用程序的构建工具。您选择的构建工具决定了以下设置:

      • 生成的项目的目录结构
      • 生成的项目中使用的配置文件的格式
      • 在生成项目后,用于编译和启动 code.quarkus.redhat.com 的应用程序的自定义构建脚本和命令

        注意

        红帽仅支持使用 code.quarkus.redhat.com 来创建 Quarkus Maven 项目。

  4. 指定应用程序项目的更多详情:

    1. 要显示包含更多应用程序详情的字段,请选择 More options

    2. 输入您要用于项目生成的工件的版本。此字段的默认值为 1.0.0-SNAPSHOT。首选使用 语义版本,但您可以选择指定不同类型的版本。
    3. 选择是否希望 code.quarkus.redhat.com 将入门代码添加到项目中。将标记为"STARTER-CODE"的扩展添加到项目中时,您可以启用此选项,以便在生成项目时自动为这些扩展创建示例类和资源文件。但是,如果您没有添加提供示例代码的任何扩展,这个选项不会影响生成的项目。

    image::additional-app-details-project-generator.png["Screenshot of the application details 部分的 code.quarkus.redhat.com 站点,显示带有额外应用程序详情"] 的扩展表单

  5. 选择要使用的扩展。Quarkus 应用程序包含您选择的扩展作为依赖项。Quarkus 平台还确保这些扩展与将来的版本兼容。

    重要

    不要在同一项目中使用 RESTEasyQuarkus REST 扩展。两者都提供相似的功能,但它们的运作方式有所不同。首选使用 Quarkus REST

    扩展旁边的 quark 图标( quark )表示扩展是红帽构建的 Quarkus 平台版本的一部分。红帽更喜欢使用来自同一平台的扩展,因为它们经过测试和验证,因此更易于使用和升级。

    您可以启用 选项,为标记为"STARTER-CODE"的扩展自动生成初学者代码。

    Screenshot of the list of extensions at the code.quarkus.redhat.com site that you can add to your project

  6. 要确认您的选择,请选择 Generate your application。出现的对话框显示以下项目:

    • 下载包含您生成的项目的存档的链接
    • 您可以使用该命令编译和启动应用程序
  7. 要使用生成的项目文件将存档保存到机器中,请选择 Download the ZIP
  8. 提取存档的内容。
  9. 进入包含提取的项目文件的目录:

    cd <directory_name>
    Copy to Clipboard Toggle word wrap
  10. 使用以下方法之一以 dev 模式编译和启动应用程序:

    • 使用 Maven:

      ./mvnw quarkus:dev
      Copy to Clipboard Toggle word wrap
    • 使用 Quarkus CLI:

      quarkus dev
      Copy to Clipboard Toggle word wrap

1.4.2.1. 红帽构建的 Quarkus 扩展的支持等级

红帽为 code.quarkus.redhat.com 上可用的扩展提供了 不同的 支持,供您添加到 Quarkus 项目中。每个扩展名称旁边的标签表示支持级别。

重要

红帽不支持在生产环境中使用的未标记扩展。

Screenshot of an expanded overflow menu next to one of the extensions on code.quarkus.redhat.coim showing the custom commands that you can copy

红帽为红帽构建的 Quarkus 扩展提供以下级别的支持:

Expand
表 1.1. 红帽为红帽构建的 Quarkus 扩展提供的支持级别
支持级别描述

支持

红帽完全支持在生产环境中使用的扩展。

TECH-PREVIEW

红帽对在 技术预览功能下在生产环境中的扩展提供支持 - 支持范围

预览

红帽不支持在生产环境中使用的扩展。只在 Quarkus 社区版本中提供扩展。

DEV-SUPPORT

红帽不支持在生产环境中使用的扩展,但红帽开发人员支持他们在开发新应用程序时提供的核心功能。

弃用

红帽计划使用提供相同功能的最新技术或实施来替换扩展。

STARTER-CODE

您可以为扩展自动生成示例代码。

通过单击每个扩展旁边的箭头图标(InventoryService),您可以扩展溢出菜单来访问该扩展的进一步操作。例如:

  • 在命令行中使用 Quarkus Maven 插件将扩展添加到现有项目
  • 复制 XML 片段,将扩展添加到项目的 pom.xml 文件中
  • 获取每个扩展的 groupIdartifactId 和版本
  • 打开扩展指南

1.4.3. 使用 quarkus CLI 创建 Getting Started 项目

您可以使用 Quarkus 命令行界面(CLI)创建 获取 的项目。

使用 Quarkus CLI,您可以创建项目、管理扩展并运行构建和开发命令。

重要

Quarkus CLI 主要用于开发目的,包括创建、更新和构建 Quarkus 项目等任务。但是,红帽不支持在生产环境中使用 Quarkus CLI。

先决条件

流程

  1. 要生成项目,在命令终端中输入以下命令:

    quarkus create && cd code-with-quarkus
    Copy to Clipboard Toggle word wrap
    注意

    您还可以指定 'app' 子命令,例如 quarkus create app。但是,这不是强制这样做,因为如果没有指定 'app' 子命令会表示它。

    使用此命令,您可以在当前工作目录的名为 'code-with-quarkus' 的 文件夹中创建 Quarkus 项目。

  2. 默认情况下,groupIdartifactIdversion 属性使用以下默认值指定:

    • 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
    Copy to Clipboard Toggle word wrap
  3. 在文本编辑器中查看 src/main/java/org/acme/GreetingResource.java 文件:

    package org.acme;
    
    import jakarta.ws.rs.GET;
    import jakarta.ws.rs.Path;
    import jakarta.ws.rs.Produces;
    import jakarta.ws.rs.core.MediaType;
    
    @Path("/hello")
    public class GreetingResource {
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String hello() {
            return "Hello from Quarkus REST";
        }
    }
    Copy to Clipboard Toggle word wrap

    此文件包含一个简单的 REST 端点,它将 Hello from Quarkus REST 返回为您发送到 /hello 端点的请求。

验证

  1. 以 dev 模式编译和启动应用程序。如需更多信息,请参阅 编译和启动 Red Hat build of Quarkus Getting Started 项目
  2. 从 Quarkus CLI 软件包并运行 Getting Started 项目。如需更多信息,请参阅打包并运行红帽构建的 Quarkus 入门应用程序
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat