本页面介绍了如何使用 Cloud Build 构建和测试 基于 Java 的应用,将构建的工件存储在 Artifact Registry,并生成 build 出处信息。
准备工作
- 熟悉如何创建基于 Java 的应用。
- 熟悉 Maven
- 准备好您的 Java 项目。
- 熟悉如何编写 Cloud Build 配置文件。
- 在 Artifact Registry 中拥有 Maven 制品库。如果您还没有代码库,请创建新代码库。
- 如需运行此页面中的
gcloud
命令,请安装 Google Cloud CLI。
使用 maven
映像
您可以将 Cloud Build 配置为使用
Docker Hub 中的 maven
映像。
如需在 maven
映像中执行任务,请在构建配置中添加包含以下字段的步骤:
name
:将此字段的值设置为maven
或maven:<tag>
,其中 标记表示版本。如果您未指定映像标记,则 Cloud Build 默认使用latest
映像。entrypoint
:设置此字段会替换name
中引用的映像的默认入口点。将此字段的值设置为mvn
以进行调用 将mvn
作为构建步骤的入口点并运行mvn
命令。args
:构建步骤的args
字段接受一系列参数, 并将其传递给name
字段引用的图像。
以下构建步骤为 maven
映像指定 entrypoint
标记为 3.3-jdk-8
并输出构建工具版本:
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
配置 Java
构建
在项目根目录中,创建一个名为
cloudbuild.yaml
的构建配置文件。运行测试:
maven
提供了maven test
,用于下载依赖项、构建应用并运行源代码中指定的任何测试。构建步骤的args
字段采用参数列表,并将其传递给name
字段引用的映像。在构建配置文件中,将
test
添加到args
字段可在maven
内调用test
:steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']
软件包应用 (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']
上传到 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
。
可选:启用出处生成功能
Cloud Build 可以生成可验证的软件工件的供应链级别 (SLSA) 构建来源元数据,以帮助保护您的持续集成流水线。
如需启用来源生成,请将
requestedVerifyOption: VERIFIED
添加到配置文件中的options
部分。-
构建完成后,您可以查看代码库详情 在 Artifact Registry 中构建
您还可以查看 build 来源元数据和验证来源。
后续步骤
- 了解如何查看构建结果。
- 了解如何保护 build。
- 了解如何在 Compute Engine 上执行蓝绿部署。
- 了解如何构建和容器化 Java 应用。
- 了解如何在 Cloud Run 上部署应用。
- 了解如何在 GKE 上部署应用。
- 了解如何排查构建错误。