构建和测试 Java 应用

本页面介绍了如何使用 Cloud Build 构建和测试 基于 Java 的应用,将构建的制品存储在 Artifact Registry,并生成 build 出处信息。

准备工作

使用 maven 映像

您可以将 Cloud Build 配置为使用 Docker Hub 中的 maven 映像

要在 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 字段以调用 testmaven 内:

         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 出处元数据验证出处

后续步骤