【问题标题】:How to use private go package with modules如何使用带有模块的私有 go 包
【发布时间】:2019-11-06 12:20:48
【问题描述】:

我有一个项目提供 API 但不在 github.com 下,它在 github.ny.nts.com 下 如何在我的代码中使用它?

我已添加到一个新程序并在导入中放入:

import “github.ny.nts.com/fds/client”

现在,当我运行 go mod init 时,它没有向 go.mod 文件添加任何内容(与此项目相关)

我如何定义“注册表”(类似于 nodejs/npm,当你可以知道从哪里下载包时)并告诉 gomod 把它带到我公司的 git 上?

我能够毫无问题地克隆项目,因此我对项目 git 的访问没有任何问题。

【问题讨论】:

  • 你可以试试 GOPRIVATE=github.ny.nts.com,然后重新运行 go mod tidy
  • Go 中没有包注册表/存储库。
  • @Adrian,是的,我们现在可以做:sum 数据库和模块代理。
  • 有点但不是真的,因为它们仍然是任意源存储库的简单代理。

标签: git go github registry go-modules


【解决方案1】:

您可以通过在项目根目录中运行go get 来隐式安装依赖项

$> go get github.ny.nts.com/fds/client

如果存储库是私有的,您需要实施一种解决方法,因为 go get 默认为 https 用于克隆 git 存储库。从您的项目文件夹中运行以下命令将告诉 git 在从您的存储库中提取此项目的包时使用 SSH(以及您存储的凭据):

$> git config insteadOf."https://github.ny.nts.com/".use "git@github.ny.nts.com:"

完成后,您应该可以运行 go get ... 并拉取您的包

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 2022-01-22
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多