本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 2:创建 buildspec 文件
(上一步:步骤 1:创建源代码)
在此步骤中,您将创建一个构建规范 (build spec) 文件。buildspec 是一组生成命令和相关设置,采 CodeBuild 用 YAML 格式,用于运行构建。如果没有构建规范, 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
重要
因为 buildspec 声明必须为有效的 YAML,所以 buildspec 声明中的空格至关重要。如果 buildspec 声明中的空格数与此不匹配,则构建可能会立即失败。您可以使用 YAML 验证程序测试构建规范声明是否为效的 YAML。
注意
您可以在创建构建项目时单独声明构建命令,而不是将 buildspec 文件包含在源代码中。如果您需要使用其他构建命令来构建源代码,而不是每次更新源代码存储库,这个方法很有用。有关更多信息,请参阅buildspec 语法。
在此构建规范声明中:
-
version
表示正在使用的构建规范标准的版本。此构建规范声明使用最新版本0.2
。 -
phases
表示您可以指示 CodeBuild 运行命令的生成阶段。这些构建阶段包括install
、pre_build
、build
和post_build
。您无法更改这些构建阶段名称的拼写,也无法创建更多构建阶段名称。在本示例中,在该
build
阶段 CodeBuild 运行mvn install
命令。此命令指示 Apache Maven 编译和测试 Java 类文件,然后将编译完的文件打包为构建输出构件。出于完整性考虑,本示例的每个构建阶段中都放了几条echo
命令。您稍后查看本教程中详细的构建信息时,这些echo
命令的输出可以帮助您更好地理解 CodeBuild 运行命令的方式以及顺序。(尽管本示例中包含了所有构建阶段,但如果您不打算在某个构建阶段运行任何命令,则无需包含该构建阶段。) 对于每个构建阶段,从头到尾按所列顺序逐一 CodeBuild 运行每个指定的命令。 -
artifacts
表示 CodeBuild上传到输出存储桶的一组构建输出项目。files
表示要包含在生成输出中的文件。 CodeBuild 上传在构建环境的target
相对目录中找到的单个messageUtil-1.0.jar
文件。文件messageUtil-1.0.jar
和目录target
只是根据本示例中 Apache Maven 创建和存储构建输出构件的方式来命名的。在您自己的构建项目中,这些文件和目录名称会有所不同。
有关更多信息,请参阅Buildspec 参考。
此时,您的目录结构应如下所示。
(root directory name)
|-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java