Help us learn about your current experience with the documentation. Take the survey.

在单个 GitLab 项目中存储所有包

  • Tier: 免费版、高级版、旗舰版
  • Offering: GitLab.com、GitLab 自托管、GitLab 专用

在单个项目的包注册表中存储来自多个源的包,并配置您的远程仓库指向 GitLab 中的此项目。

当您想要:

  • 将包发布到与代码存储位置不同的 GitLab 项目中。
  • 将包分组到一个项目中(例如,所有 npm 包、特定部门的所有包,或同一项目中的所有私有包)。
  • 在为其他项目安装包时使用一个远程仓库。
  • 将包从第三方包注册表迁移到 GitLab 中的单个位置。
  • 让 CI/CD 管道将所有包构建到一个项目中,以便您可以在同一位置管理包。

示例 walkthrough

使用每个包管理系统在同一位置发布不同类型的包。

在单个 GitLab 项目中存储不同类型的包

让我们看看如何创建一个项目来托管您的所有包:

  1. 在 GitLab 中创建一个新项目。该项目不需要任何代码或内容。

  2. 在左侧边栏,选择项目概览,并记下项目 ID。

  3. 创建用于身份验证的访问令牌。包注册表中的所有包类型都可以通过以下方式发布:

    如果项目是私有的,下载包也需要身份验证。

  4. 配置您的本地项目并发布包。

您可以将所有包类型上传到同一项目,或根据包类型或可见性级别拆分包。

npm

对于 npm 包:

  • 创建一个.npmrc 文件来配置注册表 URL。
  • 使用项目 package.json 文件中的 publishConfig 选项为您的包设置作用域。
  • 使用 npm publish 发布包。

有关更多信息,请参阅包注册表中的 npm 包

Maven

对于 Maven 包:

  1. 使用 repositorydistributionManagement 部分更新您的 pom.xml 文件以配置注册表 URL。
  2. 添加一个 settings.xml 文件并包含您的访问令牌。
  3. 使用 mvn deploy 发布包。

有关更多信息,请参阅包注册表中的 Maven 包

Conan 1

对于 Conan 1:

  • 将 GitLab 包注册表添加为 Conan 注册表远程仓库。

  • 使用加号分隔(+)的项目路径作为您的 Conan 用户创建您的 Conan 1 包。例如,如果您的项目位于 https://gitlab.com/foo/bar/my-proj,则使用 conan create . foo+bar+my-proj/channel 创建您的 Conan 包。channel 是包通道,例如 betastable

    CONAN_LOGIN_USERNAME=<gitlab-username> CONAN_PASSWORD=<personal_access_token> conan upload MyPackage/1.0.0@foo+bar+my-proj/channel --all --remote=gitlab
  • 使用 conan upload 或您的包配方发布您的包。

有关更多信息,请参阅包注册表中的 Conan 1 包

Conan 2

对于 Conan 2:

  • 将 GitLab 包注册表添加为 Conan 注册表远程仓库。
  • 创建您的 Conan 2 包
  • 使用 conan upload 或您的包配方发布您的包。

有关更多信息,请参阅包注册表中的 Conan 2 包

Composer

您无法在其项目外发布 Composer 包。支持在其他项目中发布 Composer 包的提议在问题 250633中。

所有其他包类型

GitLab 支持的所有包类型都可以发布到同一个 GitLab 项目中。在之前的版本中,并非所有包类型都可以发布到同一个项目中。