我正在使用 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 协议无关。