

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Publicación con curl
<a name="maven-curl"></a>

En esta sección se muestra cómo utilizar el cliente HTTP `curl` para publicar artefactos de Maven en un repositorio de CodeArtifact. Publicar artefactos con `curl` puede resultar útil si no tiene o no desea instalar el cliente Maven en sus entornos.

**Publicación de un artefacto de Maven con `curl`**

1. Obtenga un token de autorización de CodeArtifact siguiendo los pasos descritos en [Pasar un token de autenticación mediante una variable de entorno](tokens-authentication.md#env-var) y vuelva a estos pasos.

1. Utilice el siguiente comando `curl` para publicar el JAR en un repositorio de CodeArtifact:

   En cada uno de los comandos `curl` de este procedimiento, sustituya los siguientes marcadores de posición:
   + Sustituya {{my\_domain}} por su nombre de dominio de CodeArtifact.
   + Sustituya {{111122223333}} por el ID del propietario de su dominio CodeArtifact.
   + Sustituya {{us-west-2}} por la región en la que reside su dominio de CodeArtifact.
   + Sustituya {{my\_repo}} por el nombre de su repositorio de 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**  
Debe anteponer el valor del parámetro `--data-binary` con un carácter `@`. Al escribir el valor entre comillas, `@` debe incluirse dentro de las comillas.

1. Utilice el siguiente comando `curl` para publicar el POM en un repositorio de 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. En este punto, el artefacto Maven estará en su repositorio de CodeArtifact con un estado de `Unfinished`. Para poder consumir el paquete, debe estar en el estado `Published`. Puede mover el paquete de `Unfinished` a `Published` cargando un archivo `maven-metadata.xml` en el paquete o llamando a la API [UpdatePackageVersionsStatus](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html) para cambiar el estado.

   1.  Opción 1: use el siguiente comando `curl` para añadir un archivo `maven-metadata.xml` al paquete: 

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

      El siguiente ejemplo muestra el contenido de un archivo `maven-metadata.xml`:

      ```
      <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.  Opción 2: actualice el estado del paquete a `Published` con la 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
      ```

Si solo tiene el archivo JAR de un artefacto, puede publicar una versión de paquete consumible en un repositorio de CodeArtifact utilizando `mvn`. Esto puede resultar útil si no tiene acceso al código fuente o al POM del artefacto. Para obtener más información, consulte [Publicación de artefactos de terceros](maven-mvn.md#publishing-third-party-artifacts).