构建和测试 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

    当您使用 Cloud Build 配置文件中的 mavenArtifacts 字段将工件上传到 Artifact Registry 时,Cloud Build 会为独立 Maven 软件包生成软件工件的供应链级别 (SLSA) 构建出处信息。

    在构建配置文件中,使用 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:采用 com.mycompany.app 格式,在所有 Maven 项目中唯一标识您的项目。如需了解详情,请参阅 Maven 命名惯例指南
    • version:应用的版本号,格式为数字和点,如 1.0.1
  5. 可选:为区域 build 启用出处

    如果您使用的是区域级 build,请在 build 配置文件的 options 中添加 requestedVerifyOption 字段。将值设置为 VERIFIED 以启用出处元数据生成功能。如果您不添加 requestedVerifyOption: VERIFIED,Cloud Build 仅会为全局构建生成出处。

    options:
      requestedVerifyOption: VERIFIED
    
  6. 启动构建手动使用构建触发器

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

    您还可以查看 build 出处元数据验证出处,以帮助保护您的软件供应链。

后续步骤