当GOPATH强制您将代码放入/ go文件夹时,如何将所有相关项目保持在一起

时间:2017-11-02 01:15:44

标签: git go

我想开始在以下路径开发go web服务:

/dev/git/proj1/mygoservice/
/dev/git/proj1/railsapp/

如果我走的路是:

~/go

这将如何运作?我应该创建一个指向我的git仓库的符号链接吗?

我希望将所有子项目保存在teh / dev / git / proj1路径下。

1 个答案:

答案 0 :(得分:1)

如果 将您的来源保存在/dev/git/proj1,那么您确实需要从您的来源到官方GOPATH ~/go/src的符号链接(尊重workspace structure })。
而不是相反,从~/go/src到您的来源。

这是因为go工具不遵循符号链接,commentedJimBissue 15507issue 17451

所以:

cd /dev/git/proj1
mv mygoservice ~/go/mygoservice
ln -s ~/go/mygoservice

但是如果你需要将你的git repo推送到GitHub项目,那么最好使用正确的文件夹结构,以便你的Go项目可以获取,如“Import paths”中所示:

mkdir -p ~/go/src/github.com/<auser>
cd /dev/git/proj1
mv mygoservice~/goo/src/github.com/<auser>
ln -s ~/go/src/github.com/<auser>/proj1/mygoservice /dev/git/proj1/mygoservice

这样,您将在go go来源中使用基于“github.com/<auser>/mygoservice”的正确导入路径