

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

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

# 將套件發佈至 CodeCatalyst 套件儲存庫
<a name="package-publishing"></a>

 您可以使用套件管理員工具，將任何支援套件類型的版本發佈至 CodeCatalyst 套件儲存庫。發佈套件版本的步驟如下：

**將套件版本發佈至 CodeCatalyst 套件儲存庫**

1. 如果您尚未建立，[請建立套件儲存庫](packages-repositories-create.md)。

1. 將套件管理員連接到套件儲存庫。如需如何將 npm 套件管理員連線至 CodeCatalyst 套件儲存庫的指示，請參閱 [設定和使用 npm](packages-npm-use.md)。

1. 使用連線的套件管理員發佈套件版本。

**Contents**
+ [發佈和上游儲存庫](#package-publishing-upstreams)
+ [私有套件和公有儲存庫](#package-publishing-upstreams-direct)
+ [覆寫套件資產](#package-publishing-overwrite-assets)

## 發佈和上游儲存庫
<a name="package-publishing-upstreams"></a>

在 CodeCatalyst 中，您無法發佈可連線上游儲存庫或公有儲存庫中存在的套件版本。例如，假設您想要將 npm 套件 發佈`lodash@1.0`至套件儲存庫 `myrepo`和 透過設定為上游儲存庫的閘道儲存庫`myrepo`連線至 npmjs.com。如果上游儲存庫或 npmjs.com 中存在 `lodash@1.0` ，CodeCatalyst `myrepo`會發出 409 衝突錯誤，拒絕在 中發佈任何嘗試。這有助於防止您不小心發佈與上游儲存庫中套件名稱和版本相同的套件，這可能會導致意外行為。

您仍然可以發佈上游儲存庫中存在的不同版本套件名稱。例如，如果 `lodash@1.0` 存在於上游儲存庫中，但 `lodash@1.1` 不存在，您可以發佈`lodash@1.1`到下游儲存庫。

## 私有套件和公有儲存庫
<a name="package-publishing-upstreams-direct"></a>

 CodeCatalyst 不會將儲存在 CodeCatalyst 儲存庫中的套件發佈至公有儲存庫，例如 npmjs.com 或 Maven Central。CodeCatalyst 會將套件從公有儲存庫匯入 CodeCatalyst 儲存庫，但不會以相反方向移動套件。您發佈至 CodeCatalyst 儲存庫的套件會保持私有，且僅適用於儲存庫所屬的 CodeCatalyst 專案。

## 覆寫套件資產
<a name="package-publishing-overwrite-assets"></a>

 您無法重新發佈已存在且具有不同內容的套件資產。例如，假設您已使用 JAR 資產 發佈 Maven 套件`mypackage-1.0.jar`。只有在舊資產和新資產的檢查總和相同時，您才能再次發佈該資產。若要使用新內容重新發佈相同的資產，請先刪除套件版本。嘗試以不同的內容重新發佈相同的資產名稱會導致 HTTP 409 衝突錯誤。

對於支援多個資產 (Python 和 Maven) 的套件格式，您可以隨時將名稱不同的新資產新增至現有的套件版本，前提是您具有必要的許可。由於 npm 和 NuGet 每個套件版本僅支援單一資產，若要修改已發佈的套件版本，您必須先將其刪除。

 如果您嘗試重新發佈已存在的資產 （例如 `mypackage-1.0.jar`)，且已發佈資產和新資產的內容相同，則操作會成功，因為操作是等冪的。