相关疑难解决方法(0)

为什么 go module ssh 自定义私有仓库(非 github)配置仍然请求 https 获取?

我正在使用 Go 模块。

为了使用模块版本,我无法使用本地模块。例如:

replace locakpkg => ../localpkg v0.1.0
Run Code Online (Sandbox Code Playgroud)

上面的操作将会失败,因为替换本地路径到目前为止还没有版本(转到 1.15)。

因此,为了使模块版本正常工作,我决定使用私有 ssh 存储库。

我花了两天时间搜索如何使私人 ssh 存储库工作。

通过参考很多网上的文章,我做到了

git config --global url.user@private.com:.insteadOf https://private.com/
go env -w GOPRIVATE=private.com
Run Code Online (Sandbox Code Playgroud)

我发现 go get 总是会执行 https fetch 来检查 ssl 凭证。所以我也正确配置了一个https服务器。

但最终我仍然收到错误消息:

unrecognized import path "private.com/foo": reading https://private.com/foo?go-get=1: 404 Not Found
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了这个错误,发现了这个规范https://golang.org/ref/mod#vcs-find,它说我必须让服务器回复<meta name="go-import" content="root-path vcs repo-url">https 获取请求。

  • 如果有办法在本地模块包中使用 git 标签版本控制,我可以在 go.mod 中使用本地替换,而不是配置私有 ssh 存储库。

  • 如果上述一点不可能,当我配置私有 ssh 存储库时如何避免 https 获取?我认为 ssh repo 与 https 协议无关。

go go-modules

1
推荐指数
1
解决办法
4498
查看次数

标签 统计

go ×1

go-modules ×1