问题
beego的bee工具为什么强制新建项目在GOPATH/src目录下?
每次升级bee工具都要先改其源码使之可以在任意目录内生成项目。实在不喜欢把第三方库和自己的所有项目放在一个目录下,太乱了。顺便问一下go为什么建议把所有项目源码都放在gopath/src目录内?
回答
为什么?
因为 GO 的包搜索是从 GOPATH 和 GOROOT 路径下搜索,源码必须要放在 GOROOT 或 GOPATH 的 src 目录下才能找到。但把源码和包放在一起,对于很多人来说确实不太很习惯,有一种做法,通过在 GOPATH 中设置两个路径,go get 下载的包默认放在 GOPATH 设置的第一个路径下。比如,GOPATH 设置如下:
export GOPATH=/Users/polo/go/:/Users/polo/Work/go
复制代码
如此就可以把工作区设在 /Users/polo/Work/go/src,而安装包放在 /Users/polo/go/src。
其实我觉得,直接放在一起也挺好的,看源码的时候还方便点。
除此之外,GO 其实也提供了一些包依赖管理工具,但都并非 GO 自带。简单举几个例子,如下:
- dep
- vgo
- godep
等等。
我在网上找了一篇2017年的文章,描述了 GO 包管理工具的一些历史和当时的情况,