本页面介绍了如何使用 Cloud Build 构建和测试基于 Java 的应用,将构建的工件存储在 Artifact Registry 的 Maven 代码库中,以及生成构建出处信息。
准备工作
- 熟悉如何创建基于 Java 的应用。
- 熟悉 Maven
- 准备好您的 Java 项目。
- 熟悉如何编写 Cloud Build 配置文件。
- 在 Artifact Registry 中拥有 Maven 制品库。如果没有,请创建新的代码库。
- 如需运行此页面中的
gcloud
命令,请安装 Google Cloud CLI。
使用 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
构建
在项目根目录中,创建一个名为
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) build 出处元数据,以帮助保护持续集成流水线。
如需启用出处生成功能,请将
requestedVerifyOption: VERIFIED
添加到配置文件的options
部分。-
构建完成后,您可以在 Artifact Registry 中查看代码库详情。
您还可以查看 build 出处元数据和验证出处。
后续步骤
- 了解如何查看构建结果。
- 了解如何保护 build。
- 了解如何在 Compute Engine 上执行蓝绿部署。
- 了解如何构建 Java 应用并对其进行容器化。
- 了解如何在 Cloud Run 上部署应用。
- 了解如何在 GKE 上部署应用。
- 了解如何排查构建错误。