构建和测试 Java 应用

本页面介绍了如何使用 Cloud Build 构建和测试基于 Java 的应用,将构建的工件存储在 Artifact Registry 的 Maven 代码库中,以及生成构建出处信息。

准备工作

使用 maven 映像

您可以将 Cloud Build 配置为使用 Docker Hub 中的 maven 映像构建 Java 应用。

如需在 maven 映像中执行任务,请在 build 配置文件的 name 字段中指定该映像的网址和该映像的标记版本。如果您未指定映像标记,Cloud Build 将默认使用 latest 映像。Cloud Build 使用映像的默认入口点启动 name 中指定的映像。如需替换默认入口点并调用 maven 作为入口点,请在 entrypoint 字段中指定 mvn

以下构建配置文件指定了 maven 映像的 entrypoint 并输出了构建工具版本:

          steps:
          - name: maven:3.3-jdk-8
            entrypoint: mvn
            args: ['--version']

配置 Java 构建

  1. 在项目根目录中,创建一个名为 cloudbuild.yaml 的构建配置文件。

  2. 运行测试maven 提供了 maven test,用于下载依赖项、构建应用并运行源代码中指定的任何测试。构建步骤的 args 字段采用参数列表,并将其传递给 name 字段引用的映像。

    在构建配置文件中,将 test 添加到 args 字段以在 maven 中调用 test

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['test']
    
  3. 软件包应用 (Package application):如需针对 maven 映像将您的应用打包为 JAR 文件,请在 args 字段中指定 package 命令。package 命令可在 /workspace/target/ 中构建 JAR 文件。

    以下构建步骤将打包您的 Java 应用:

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['package','-Dmaven.test.skip=true']
    
  4. 上传到 Artifact Registry

    在构建配置文件中,使用 mavenArtifacts 字段在 Artifact Registry 中指定应用路径和 Maven 代码库:

    artifacts:
      mavenArtifacts:
      - repository: 'https://location-maven.pkg.dev/project-id/repository-name'
        path: 'app-path'
        artifactId: 'build-artifact'
        groupId: 'group-id'
        version: 'version'
    

    替换以下值:

    • location:您的代码库在 Artifact Registry 中的位置
    • project-id:您的 Artifact Registry 代码库所在的 Google Cloud 项目的 ID。
    • repository-name:Artifact Registry 中 Maven 代码库的名称。
    • app-path:已封装应用的路径。
    • build-artifact:在构建步骤中创建的软件包文件的名称。
    • group-id:在所有 Maven 项目中唯一标识您的项目,格式为 com.mycompany.app。如需了解详情,请参阅 Maven 命名惯例指南
    • version:应用的版本号,采用数字和点(如 1.0.1)的格式
  5. 可选:启用出处生成功能

    Cloud Build 可以生成可验证的软件制品供应链级别 (SLSA) build 出处元数据,以帮助保护持续集成流水线。

    如需启用出处生成功能,请将 requestedVerifyOption: VERIFIED 添加到配置文件的 options 部分。

  6. 启动构建手动使用构建触发器

    构建完成后,您可以在 Artifact Registry 中查看代码库详情

    您还可以查看 build 出处元数据验证出处

后续步骤