

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 curl 發佈套件
<a name="packages-maven-curl"></a>

本節說明如何使用 HTTP `curl` 用戶端將 Maven 套件發佈至 CodeCatalyst 套件儲存庫。如果您沒有或想要在環境中安裝 Maven 用戶端，使用 發佈套件`curl`會很有用。

**使用 發佈 Maven 套件 `curl`**

1. 您必須將個人存取字符 (PAT) 存放在環境變數中，以`curl`使用 CodeCatalyst 進行驗證。如果您已經有，則可以使用它。如果沒有，您可以建立一個 並設定環境變數。

   1. 依照中的步驟建立 PAT[使用個人存取權杖授予使用者儲存庫存取權](ipa-tokens-keys.md)。複製 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` 狀態。您可以透過將`maven-metadata.xml`檔案`Unfinished``Published`上傳到套件，或在 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：`Published`在 CodeCatalyst 主控台中將套件狀態更新為 。如需如何更新套件版本狀態的資訊，請參閱 [更新套件版本的狀態](working-with-packages-update-version-status.md)。

如果您只有套件的 JAR 檔案，您可以使用 將消耗性套件版本發佈至 CodeCatalyst 儲存庫`mvn`。如果您無法存取套件的原始碼或 POM，這會很有用。如需詳細資訊，請參閱 [發佈第三方套件](packages-maven-mvn.md#publishing-third-party-packages)。