

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Publier avec curl
<a name="maven-curl"></a>

Cette section explique comment utiliser le client HTTP `curl` pour publier des artefacts Maven dans un CodeArtifact référentiel. La publication d'artefacts avec `curl` peut être utile si vous ne possédez pas ou ne souhaitez pas installer le client Maven dans vos environnements.

**Publiez un artefact Maven avec `curl`**

1. Récupérez un jeton CodeArtifact d'autorisation en suivant les étapes indiquées [Transmettre un jeton d'authentification à l'aide d'une variable d'environnement](tokens-authentication.md#env-var) et revenez à ces étapes.

1. Utilisez la `curl` commande suivante pour publier le fichier JAR dans un CodeArtifact référentiel :

   Dans chacune des `curl` commandes de cette procédure, remplacez les espaces réservés suivants :
   + {{my\_domain}}Remplacez-le par votre nom de CodeArtifact domaine.
   + {{111122223333}}Remplacez-le par l'ID du propriétaire de votre CodeArtifact domaine.
   + Remplacez {{us-west-2}} par la région dans laquelle se trouve votre CodeArtifact domaine.
   + Remplacez {{my\_repo}} par le nom de votre CodeArtifact dépôt.

   ```
   curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/1.0/my-app-1.0.jar}} \
        --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @{{my-app-1.0.jar}}
   ```
**Important**  
Vous devez préfixer la valeur du `--data-binary` paramètre par un `@` caractère. Lorsque vous mettez la valeur entre guillemets, `@` celle-ci doit être incluse entre guillemets.

1. Utilisez la `curl` commande suivante pour publier le POM dans un CodeArtifact référentiel :

   ```
   curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/1.0/my-app-1.0.pom}} \
        --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @{{my-app-1.0.pom}}
   ```

1. À ce stade, l'artefact Maven sera dans votre CodeArtifact dépôt avec un statut de. `Unfinished` Pour pouvoir consommer le package, celui-ci doit être en bon `Published` état. Vous pouvez déplacer le package de `Unfinished` vers `Published` en téléchargeant un `maven-metadata.xml` fichier dans votre package ou en appelant l'[UpdatePackageVersionsStatus API](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) pour modifier le statut.

   1.  Option 1 : utilisez la `curl` commande suivante pour ajouter un `maven-metadata.xml` fichier à votre package : 

      ```
      curl --request PUT https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{region}}.amazonaws.com/maven/{{my_repo}}/{{com/mycompany/app/my-app/maven-metadata.xml}} \
           --user "aws:$CODEARTIFACT_AUTH_TOKEN" --header "Content-Type: application/octet-stream" \
           --data-binary @{{maven-metadata.xml}}
      ```

      Voici un exemple du contenu d'un `maven-metadata.xml` fichier :

      ```
      <metadata modelVersion="1.1.0">
          <groupId>com.mycompany.app</groupId>
          <artifactId>my-app</artifactId>
          <versioning>
              <latest>1.0</latest>
              <release>1.0</release>
              <versions>
                  <version>1.0</version>
              </versions>
              <lastUpdated>20200731090423</lastUpdated>
          </versioning>
      </metadata>
      ```

   1.  Option 2 : mettez à jour le statut du package `Published` avec l'`UpdatePackageVersionsStatus`API. 

      ```
      aws codeartifact update-package-versions-status \
          --domain {{my_domain}} \
          --domain-owner {{111122223333}} \
          --repository {{my_repo}} \
          --format maven \
          --namespace {{com.mycompany.app}} \
          --package {{my-app}} \
          --versions {{1.0}} \
          --target-status Published
      ```

Si vous ne disposez que du fichier JAR d'un artefact, vous pouvez publier une version de package consommable dans un CodeArtifact référentiel à l'aide de. `mvn` Cela peut être utile si vous n'avez pas accès au code source ou au POM de l'artefact. Consultez [Publier des artefacts tiers](maven-mvn.md#publishing-third-party-artifacts) pour plus de détails.