首页 > 解决方案 > 如何使用带有模块的私有 go 包

问题描述

我有一个提供 API 但不在 github.com 下的项目,它位于github.ny.nts.com How can I use it on my code?

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

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

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

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

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

标签: gitgogithubregistrygo-modules

解决方案


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 ...并拉取您的包


推荐阅读