所以我有一个私人回购,我的main.go
进口。当我进行构建时出现此错误:
找不到路径的模块
我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。
做这个
git config --global --add url."git@your-repo.com:".insteadOf "https://your-repo.com/"
export GOPRIVATE='your-repo.com'
确保您的 git clone 通过 ssh 工作。
(从这个 SO Question复制的答案)
我在 Medium: Go Modules with Private Git Repositories上为此写了一个解决方案。
我们处理它的方式与Alex Pliutau的回答基本相同,该博客更详细地介绍了如何使用来自 GitHub/GitLab/BitBucket 的令牌设置 git config 的示例。它还介绍了一个工作 Dockerfile 示例,用于使用带有私有 repos 的模块。
GitLab 的相关位:
git config --global \
url."https://oauth2:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
#or
git config --global \
url."https://${user}:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
我希望它会有所帮助。
您应该使用 SSH 密钥来获取您的存储库,检查您的 SSH 密钥是否也在系统钥匙串中:
ssh-add -K ~/.ssh/id_rsa
鉴于这样的私人仓库经常处于积极开发中,我个人只是将它克隆到我的“正确”位置,$GOPATH
并像使用任何其他项目一样使用源代码管理(例如 git)。在 Rodrigo 的回答中添加 SSH 密钥很棒,但是如果您无论如何都在积极开发私有存储库,那么将其克隆到正确目录的额外步骤绝不是一个困难的步骤,而不是能够做到go get
这一点。
因此,例如,对于托管在 Github 上的私人回购,我cd
会$GOHOME/src/github.com/git-username-for-repo
git clone the-repo