

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea un progetto di compilazione con più input e output
<a name="sample-multi-in-out-create"></a>

Utilizzate la procedura seguente per creare un progetto di compilazione con più input e output.

**Per creare un progetto di compilazione con più input e output**

1.  Carica le tue fonti in uno o più bucket S3, CodeCommit GitHub, GitHub Enterprise Server o Bitbucket. 

1.  Scegli quale origine è quella principale. Questa è la fonte in cui CodeBuild cerca ed esegue il file buildspec. 

1.  Creare un progetto di compilazione. Per ulteriori informazioni, consulta [Crea un progetto di compilazione in AWS CodeBuild](create-project.md). 

1.  Crea il tuo progetto di build, esegui la build e ottieni informazioni sulla build. 

1.  Se usi il AWS CLI per creare il progetto di compilazione, l'input in formato JSON del `create-project` comando potrebbe essere simile al seguente: 

   ```
   {
     "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"
   }
   ```

 L'origine primaria viene definita dall'attributo `source`. Tutte le altre origini sono chiamate origini secondarie e appaiono sotto `secondarySources`. Tutte le origini secondarie sono installate nella propria directory. Tale directory è archiviata nella variabile di ambiente integrata `CODEBUILD_SRC_DIR_sourceIdentifer`. Per ulteriori informazioni, consulta [Variabili di ambiente degli ambienti di compilazione](build-env-ref-env-vars.md). 

 L'attributo `secondaryArtifacts` contiene un elenco di definizioni di artefatti. Tali artefatti utilizzano il blocco `secondary-artifacts` del file buildspec presente all'interno del blocco `artifacts`. 

 Gli artefatti secondari nel file buildspec hanno la stessa struttura degli artefatti e sono separati dall'identificatore degli artefatti. 

**Nota**  
 Nell'[API CodeBuild ](https://docs.aws.amazon.com/codebuild/latest/APIReference/), `artifactIdentifier` nell'artefatto secondario è un attributo richiesto in `CreateProject` e `UpdateProject`. Deve essere utilizzato per fare riferimento a un secondo artefatto. 

 Se si utilizza l'input precedente in formato JSON, il file buildspec del progetto potrebbe risultare simile a questo: 

```
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
```

 Puoi sovrascrivere la versione dell'origine primaria utilizzando l'API con l'attributo `sourceVersion` in `StartBuild`. Per sovrascrivere una o più versioni sorgente secondarie, utilizzare l'attributo `secondarySourceVersionOverride`. 

 L'input in formato JSON per il comando in potrebbe essere simile a: `start-build` AWS CLI 

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