

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用语义版本控制在构建时设置构件名称
<a name="sample-buildspec-artifact-naming"></a>

 此示例包含示例 buildspec 文件，演示如何指定在构建时创建的构件名称。在 buildspec 文件中指定的名称可以包含 Shell 命令和环境变量，以使其保持唯一。在 buildspec 文件中指定的名称将覆盖创建项目时在控制台中输入的名称。

 如果构建多次，则使用在 buildspec 文件中指定的构件名称可以确保输出构件文件名的唯一性。例如，您可以使用在构建时插入构件名称的日期和时间戳。

要使用 buildspec 文件中的构件名称覆盖在控制台中输入的构件名称，请执行以下操作：

1.  设置构建项目以使用 buildspec 文件中的构件名称覆盖相应的构件名称。
   +  如果您使用控制台创建您的构建项目，请选择**启用语义版本控制**。有关更多信息，请参阅 [创建构建项目（控制台）](create-project.md#create-project-console)。
   +  如果使用了 AWS CLI，请在传递给 `overrideArtifactName` 的 JSON 格式文件中将 `create-project` 设置为 true。有关更多信息，请参阅 [创建构建项目 (AWS CLI)](create-project.md#create-project-cli)。
   +  如果使用 AWS CodeBuild API，请在创建或更新项目或开始构建时在 `ProjectArtifacts` 对象上设置 `overrideArtifactName` 标记。

1.  在 buildspec 文件中指定名称。使用以下示例 buildspec 文件作为指南。

 此 Linux 示例演示如何指定包含构建创建日期的构件名称：

```
version: 0.2         
phases:
  build:
    commands:
      - rspec HelloWorld_spec.rb
artifacts:
  files:
    - '**/*'
  name: myname-$(date +%Y-%m-%d)
```

 此 Linux 示例演示如何指定使用 CodeBuild 环境变量的构件名称。有关更多信息，请参阅 [构建环境中的环境变量](build-env-ref-env-vars.md)。

```
version: 0.2         
phases:
  build:
    commands:
      - rspec HelloWorld_spec.rb
artifacts:
  files:
    - '**/*'
  name: myname-$AWS_REGION
```

 此 Windows 示例演示如何指定包含构建创建日期和时间的构件名称：

```
version: 0.2
env:
  variables:
    TEST_ENV_VARIABLE: myArtifactName
phases:
  build:
    commands:
      - cd samples/helloworld
      - dotnet restore
      - dotnet run
artifacts:
  files:
    - '**/*'
  name: $Env:TEST_ENV_VARIABLE-$(Get-Date -UFormat "%Y%m%d-%H%M%S")
```

 此 Windows 示例演示如何指定使用在 buildspec 文件中声明的变量和 CodeBuild 环境变量的构件名称。有关更多信息，请参阅 [构建环境中的环境变量](build-env-ref-env-vars.md)。

```
version: 0.2
env:
  variables:
    TEST_ENV_VARIABLE: myArtifactName
phases:
  build:
    commands:
      - cd samples/helloworld
      - dotnet restore
      - dotnet run
artifacts:
  files:
    - '**/*'
  name: $Env:TEST_ENV_VARIABLE-$Env:AWS_REGION
```

 有关更多信息，请参阅 [的构建规范参考 CodeBuild](build-spec-ref.md)。