第 3 章 创建 Getting Started 项目


通过 入门 的项目,您可以使用 Apache Maven 和 Quarkus Maven 插件,通过简单的 Quarkus 应用程序启动并运行。

流程

  1. 在命令终端中,输入以下命令验证 Maven 是否使用 JDK 11,并且 Maven 版本为 3.6.2 或更高版本:

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

    注意

    Apple macOS 和 Microsoft Windows 是不支持的生产环境。

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

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

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

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

      这些命令在 ./getting-started 目录中创建以下元素:

      • Maven 项目目录结构
      • /hello上公开的 org.acme.quickstart.GreetingResource 资源
      • 以原生模式和 JVM 模式测试应用程序的相关单元测试
      • 在启动应用程序后,一个可在 http://localhost:8080 上访问的登录页面
      • src/main/docker 目录中的 Dockerfile.jvmDockerfile.nativeDockerfile.fast-jar 文件
      • 应用程序配置文件
  4. 创建目录结构后,在文本编辑器中打开 pom.xml 文件并检查文件的内容:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.redhat.quarkus</groupId>
                <artifactId>quarkus-universe-bom</artifactId>
                <version>${quarkus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <build>
      <plugins>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-maven-plugin</artifactId>
          <version>${quarkus-plugin.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>build</goal>
                <goal>generate-code</goal>
                <goal>generate-code-tests</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
     </plugins>
    </build>
    Copy to Clipboard Toggle word wrap

    Quarkus BOM 包含在 pom.xml 文件的 &lt ;dependencyManagement > 部分。因此,您不需要列出 pom.xml 文件中的单个 Quarkus 依赖项版本。另外,您可以看到 quarkus-maven-plugin 插件,该插件负责打包应用程序并提供开发模式。

  5. 检查 pom.xml 文件中的 quarkus-resteasy 依赖项。这个依赖关系可让您开发 REST 应用程序:

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
    Copy to Clipboard Toggle word wrap
  6. 查看 src/main/java/org/acme/quickstart/GreetingResource.java 文件:

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

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

    注意

    使用 Quarkus 时,支持 JAX-RS 的应用类,但不是必需的。另外,只创建一个 GreetingResource 类的实例,而不是每个请求的一个实例。您可以使用不同的 *Scoped 注解来配置此功能,如 ApplicationScopedRequestScoped 等。

您可以使用 code.quarkus.redhat.com 项目生成器来创建 Quarkus Maven 项目。详情请参阅 使用 code.quarkus.redhat.com 创建 Quarkus Maven 项目

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat