

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 curl 发布程序包
<a name="packages-maven-curl"></a>

本节介绍如何使用 HTTP 客户端将 Maven 软件包发布`curl`到软件 CodeCatalyst 包存储库。如果您的环境中没有 Maven 客户端或想要安装 Maven 客户端，则使用 `curl` 发布程序包会很有用。

**使用 `curl` 发布 Maven 程序包**

1. 您必须将个人访问令牌 (PAT) 存储到环境变量中才能`curl`进行身份验证 CodeCatalyst。如果您已有一个 PAT，则可以使用它。如果没有 PAT，则可以创建一个 PAT 并配置环境变量。

   1. 请按照[使用个人访问令牌向用户授予对存储库的访问权限](ipa-tokens-keys.md)中的步骤操作来创建 PAT。复制 PAT 以将其存储在环境变量中。

   1. 在本地机器的命令行上，使用 PAT 配置环境变量。

      ```
      export CodeCatalyst_ARTIFACTS_TOKEN={{your_PAT}}
      ```

1. 使用以下`curl`命令将 JAR 发布到 CodeCatalyst存储库。将{{username}}、{{space\_name}}{{proj\_name}}、和{{repo\_name}}，替换为您的 CodeCatalyst 用户名、空间名称、项目名称和软件包存储库名称。

   ```
   curl --request PUT https://packages.{{region}}.codecatalyst.aws/maven/{{space-name}}/{{proj-name}}/{{repo-name}}/{{com}}/{{mycompany}}/{{app}}/{{my-app}}/{{1.0}}/{{my-app-1.0.jar}} \
        --user "{{username}}:CodeCatalyst_ARTIFACTS_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @target/{{path}}/{{to}}/{{my-app-1.0.jar}}
   ```

1. 使用以下`curl`命令将 POM 发布到 CodeCatalyst存储库。将{{username}}、{{space\_name}}{{proj\_name}}、和{{repo\_name}}，替换为您的 CodeCatalyst 用户名、空间名称、项目名称和软件包存储库名称。

   ```
   curl --request PUT https://packages.{{region}}.codecatalyst.aws/maven/{{space-name}}/{{proj-name}}/{{repo-name}}/{{com}}/{{mycompany}}/{{app}}/{{my-app}}/{{1.0}}/{{my-app-1.0.pom}} \
        --user "{{username}}:CodeCatalyst_ARTIFACTS_TOKEN" --header "Content-Type: application/octet-stream" \
        --data-binary @target/{{my-app-1.0.pom}}
   ```

1. 此时，Maven 软件包将在您的 CodeCatalyst 存储库中，状态为。`Unfinished`为了能够使用程序包，程序包必须处于 `Published` 状态。您可以`Published`通过将`maven-metadata.xml`文件上传`Unfinished`到您的包中或在 CodeCatalyst 控制台中更改状态来将包从移动到。

   1.  选项 1：使用以下 `curl` 命令将 `maven-metadata.xml` 文件添加到您的程序包中。将{{username}}、{{space\_name}}{{proj\_name}}、和{{repo\_name}}，替换为您的 CodeCatalyst 用户名、空间名称、项目名称和软件包存储库名称。

      ```
      curl --request PUT https://packages.{{region}}.codecatalyst.aws/maven/{{space-name}}/{{proj-name}}/{{repo-name}}/{{com}}/{{mycompany}}/{{app}}/{{my-app}}/{{maven-metadata.xml}} \
           --user "{{username}}:CodeCatalyst_ARTIFACTS_TOKEN" --header "Content-Type: application/octet-stream" \
           --data-binary @target/{{maven-metadata.xml}}
      ```

      以下是 `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.  选项 2：在 CodeCatalyst 控制台`Published`中将包裹状态更新为。有关如何更新程序包版本的状态的信息，请参阅[更新程序包版本的状态](working-with-packages-update-version-status.md)。

如果您只有包的 JAR 文件，则可以使用将消耗包版本发布到 CodeCatalyst 存储库。`mvn`如果您无法访问程序包的源代码或 POM，此方法会很有用。有关详细信息，请参阅[发布第三方程序包](packages-maven-mvn.md#publishing-third-party-packages)。