我正在使用Go进行一个新项目,而我们都是Go的新手。我们遵循标准的go目录结构,并将所有代码置于
$ GOPATH / src / github.com / companyname / projectname
这也是git仓库的根
推荐的标准路径布局确实有些奇怪,特别是如果我们正在开发多语言项目,例如基于Go的rest / http后端和html / javascript前端。在这种情况下,我可能希望我的项目结构如下所示:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
但是实际上是否需要将代码放置在GOPATH中?
作为尝试,我创建了一个小程序,其中的源代码在GOPATH之外。我可以轻松地将项目拆分为多个包,因此该main
包可以使用引用文件夹中的一个foo
包。foo/
import "./foo"
据我所知,有两件事使我无法接受:
- 其他代码无法导入此代码。这不是问题,因为我们正在为公司专门构建服务。
- 我不能
go install
用来安装它。这也不是问题。构建管道将安装该工具。
但是,它确实允许构建服务器的工作区不位于GOPATH内
不鼓励这种方法吗?如果是这样,为什么呢?
除了我列出的两个副作用之外,还有其他副作用吗?
请记住,这是公司的私人项目,而不是公开的开源代码。
将实际项目从GOPATH中分离出来似乎很诱人,但是当您处于Shu阶段时,应该小心打破规则