

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criar um projeto de compilação com várias entradas e saídas
<a name="sample-multi-in-out-create"></a>

Use o procedimento a seguir para criar um projeto de compilação com várias entradas e saídas.

**Para criar um projeto de compilação com várias entradas e saídas**

1.  Faça upload das origens em um ou mais buckets do S3, repositórios do CodeCommit, do GitHub, do GitHub Enterprise Server ou do Bitbucket. 

1.  Escolha qual será a origem principal. Essa é a origem em que o CodeBuild procura e executa o arquivo buildspec. 

1.  Crie um projeto de compilação. Para obter mais informações, consulte [Criar um projeto de compilação no AWS CodeBuild](create-project.md). 

1.  Crie o projeto de compilação, execute a compilação e obtenha informações sobre ela. 

1.  Se você usar a AWS CLI para criar o projeto de compilação, a entrada em formato JSON para o comando `create-project` poderá ser semelhante a: 

   ```
   {
     "name": "sample-project",
     "source": {
       "type": "S3",
       "location": "<bucket/sample.zip>"
     },
     "secondarySources": [
       {
         "type": "CODECOMMIT",
         "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo",
         "sourceIdentifier": "source1"
       },
       {
         "type": "GITHUB",
         "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin",
         "sourceIdentifier": "source2"
       }
     ],
     "secondaryArtifacts": [ss
       {
         "type": "S3",
         "location": "<output-bucket>",
         "artifactIdentifier": "artifact1"
       },
       {
         "type": "S3",
         "location": "<other-output-bucket>",
         "artifactIdentifier": "artifact2"
       }
     ],
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "aws/codebuild/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name",
     "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
   }
   ```

 Sua origem principal é definida abaixo do atributo `source`. Todas as outras origens são chamadas de secundárias e aparecem abaixo de `secondarySources`. Todas as origens secundárias são instaladas em seu próprio diretório. Esse diretório é armazenado na variável de ambiente interna `CODEBUILD_SRC_DIR_sourceIdentifer`. Para obter mais informações, consulte [Variáveis de ambiente em ambientes de compilação](build-env-ref-env-vars.md). 

 O atributo `secondaryArtifacts` contém uma lista de definições de artefato. Esses artefatos usam o bloco `secondary-artifacts` do arquivo buildspec que fica aninhado dentro do bloco `artifacts`. 

 Os artefatos secundários no arquivo buildspec têm a mesma estrutura que os artefatos e são separados pelo seu respectivo identificador de artefato. 

**nota**  
 Na [API do CodeBuild](https://docs.aws.amazon.com/codebuild/latest/APIReference/), o `artifactIdentifier` em um artefato secundário é um atributo obrigatório em `CreateProject` e `UpdateProject`. Ele deve ser usado para fazer referência a um artefato secundário. 

 Com a entrada em formato JSON anterior, o arquivo buildspec do projeto deve ter esta aparência: 

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: openjdk11
  build:
    commands:
      - cd $CODEBUILD_SRC_DIR_source1
      - touch file1
      - cd $CODEBUILD_SRC_DIR_source2
      - touch file2

artifacts:
  files:
    - '**.*'
  secondary-artifacts:
    artifact1:
      base-directory: $CODEBUILD_SRC_DIR_source1
      files:
        - file1
    artifact2:
      base-directory: $CODEBUILD_SRC_DIR_source2
      files:
        - file2
```

 Você pode substituir a versão da origem principal usando a API com o atributo `sourceVersion` em `StartBuild`. Para substituir uma ou mais versões de origem secundária, use o atributo `secondarySourceVersionOverride`. 

 A entrada em formato JSON para o comando `start-build` na AWS CLI deve ter esta aparência: 

```
{
   "projectName": "sample-project",
   "secondarySourcesVersionOverride": [
      {
        "sourceIdentifier": "source1",
        "sourceVersion": "codecommit-branch"
      },
      {
        "sourceIdentifier": "source2",
        "sourceVersion": "github-branch"
      },
   ]
}
```