步骤 3: 创建 buildspec 文件 - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 3: 创建 buildspec 文件

(上一步:步骤 2: 创建源代码

在此步骤中,您将创建一个构建规范文件。A buildspec is a collection of build commands and related settings, in YAML format, that CodeBuild uses to run a build.如果没有构建规范,CodeBuild 就无法将您的构建输入成功转换为构建输出,也无法在构建环境中找到构建输出项目以上传到输出存储桶中。

创建此文件,将其命名为 buildspec.yml,然后保存在根 (顶级) 目录中。

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
重要

因为生成规范声明必须为有效的 YAML,所以生成规范声明中的间隔至关重要。如果生成规范声明中的空格数与此不匹配,则构建可能会立即失败。您可以使用 YAML 验证程序测试生成规范声明是否为效的 YAML。

注意

您可以在创建构建项目时单独声明构建命令,而不是将构建规范文件包含在源代码中。如果您需要使用其他构建命令来构建源代码,而不是每次更新源代码存储库,这个方法很有用。有关更多信息,请参阅构建规范语法

在此生成规范声明中:

  • version 表示正在使用的生成规范标准的版本。此生成规范声明使用最新版本 0.2

  • phases 表示您可以指示 CodeBuild 运行命令的生成阶段。这些构建阶段在这里列出为 installpre_buildbuildpost_build。 您无法更改这些构建阶段名称的拼写,也无法创建更多构建阶段名称。

    本示例中,在 build 阶段,CodeBuild 运行 mvn install 命令。此命令指示 Apache Maven 编译和测试 Java 类文件,然后将编译完的文件打包为构建输出项目。出于完整性考虑,本示例的每个构建阶段中都放了几条 echo 命令。您稍后查看本教程中详细的构建信息时,这些 echo 命令的输出可以帮助您更好地理解 CodeBuild 运行命令的方式以及顺序。(尽管此示例中包含了所有构建阶段,但如果您不打算在某个构建阶段运行任何命令,则无需包含该构建阶段。) 对于每个构建阶段,CodeBuild 按照列出的顺序,从头到尾运行每个指定命令(一次运行一个命令)。

  • artifacts 表示 CodeBuild 上传到输出存储桶的一组构建输出项目。files 表示要包含在构建输出中的文件。CodeBuild 上传在构建环境的 messageUtil-1.0.jar 相对目录中找到的单个 target 文件。文件 messageUtil-1.0.jar 和目录 target 只是根据本示例中 Apache Maven 创建和存储构建输出项目的方式来命名的。在您自己的生成项目中,这些文件和目录名称会有所不同。

有关更多信息,请参阅 构建规范参考

此时,您的目录结构应如下所示。

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

下一步

步骤 4: 上传源代码和构建规范文件