

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á.

# Publicar com curl
<a name="maven-curl"></a>

Esta seção mostra como usar o cliente HTTP `curl` para publicar artefatos do Maven em um repositório do CodeArtifact. A publicação de artefatos com `curl` pode ser útil se você não tiver ou quiser instalar o cliente Maven em seus ambientes.

**Publicar um artefato do Maven com `curl`**

1. É possível buscar um token de autorização do CodeArtifact seguindo as etapas em [Passar um token de autenticação usando uma variável de ambiente](tokens-authentication.md#env-var) e voltar para essas etapas.

1. Use o seguinte comando `curl` para publicar o JAR em um repositório do CodeArtifact:

   Em cada um dos comandos `curl` desse procedimento, substitua os seguintes espaços reservados:
   + Substitua {{my\_domain}} pelo seu nome de domínio do CodeArtifact.
   + Substitua {{111122223333}} pelo ID do proprietário do seu domínio do CodeArtifact.
   + Substitua {{us-west-2}} pela região na qual seu domínio do CodeArtifact está localizado.
   + Substitua {{my\_repo}} pelo nome do seu repositório do CodeArtifact.

   ```
   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}}
   ```
**Importante**  
Você deve prefixar o valor do parâmetro `--data-binary` com um caractere `@`. Ao colocar o valor entre aspas, `@` deve ser incluído entre aspas.

1. Use o seguinte comando `curl` para publicar o POM em um repositório do CodeArtifact:

   ```
   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. Nesse ponto, o artefato do Maven estará no seu repositório do CodeArtifact com o status de `Unfinished`. Para poder consumir o pacote, ele deve estar no estado `Published`. Você pode mover o pacote de `Unfinished` para `Published` fazendo o upload de um arquivo `maven-metadata.xml` em seu pacote ou chamando a [API UpdatePackageVersionsStatus](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) para alterar o status.

   1.  Opção 1: use o comando `curl` a seguir para adicionar um arquivo `maven-metadata.xml` ao seu pacote: 

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

      Um exemplo dos conteúdos em um arquivo `maven-metadata.xml` é mostrado a seguir:

      ```
      <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.  Opção 2: atualize o status do pacote para `Published` com a API `UpdatePackageVersionsStatus`. 

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

Se você tiver apenas o arquivo JAR de um artefato, poderá publicar uma versão de pacote consumível em um repositório do CodeArtifact usando `mvn`. Isso pode ser útil se você não tiver acesso ao código-fonte do artefato ou ao POM. Para mais detalhes, consulte [Publicar artefatos de terceiros](maven-mvn.md#publishing-third-party-artifacts).