将程序包发布到 CodeCatalyst 程序包存储库 - Amazon CodeCatalyst

将程序包发布到 CodeCatalyst 程序包存储库

您可以使用程序包管理器工具将任何支持的程序包类型的版本发布到 CodeCatalyst 程序包存储库。发布程序包版本的步骤如下:

将程序包版本发布到 CodeCatalyst 程序包存储库
  1. 如果还没有程序包存储库,请创建一个程序包存储库

  2. 将您的程序包管理器连接到您的程序包存储库。有关如何将 npm 程序包管理器连接到 CodeCatalyst 程序包存储库的说明,请参阅配置并使用 npm

  3. 使用连接的程序包管理器发布您的程序包版本。

发布和上游存储库

在 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 发布到下游存储库。

私有程序包和公有存储库

CodeCatalyst 不会将存储在 CodeCatalyst 存储库中的程序包发布到公有存储库,例如 npmjs.com 或 Maven Central。CodeCatalyst 将程序包从公有存储库导入到 CodeCatalyst 存储库中,但不会将程序包从 CodeCatalyst 存储库导入公有存储库中。您发布到 CodeCatalyst 存储库的程序包将保持私有,并且仅可用于存储库所属的 CodeCatalyst 项目。

覆盖程序包资产

您无法重新发布已存在且包含不同内容的程序包资产。例如,假定您已经发布了一个具有 JAR 资产 mypackage-1.0.jar 的 Maven 程序包。仅当新旧资产的校验和完全相同时,您才能再次发布该资产。要重新发布包含新内容的相同资产,请先删除该程序包版本。尝试重新发布具有不同内容但名称相同的资产会导致出现 HTTP 409 冲突错误。

对于支持多种资产(Python 和 Maven)的程序包格式,您可以向现有程序包版本添加使用不同名称的新资产,前提是您拥有所需的权限。由于 npm 和 NuGet 的每个程序包版本仅支持单个资产,因此要修改已发布的程序包版本,都必须先删除该版本。

如果您尝试重新发布已存在的资产(例如 mypackage-1.0.jar),并且已发布资产和新资产的内容相同,则因为该操作具有幂等性,所以操作会成功。