我只想确认我对Go项目中典型项目文件夹结构的理解,该项目遵循Go tool conventions。
如果我正在编写名为my-package
的程序包,该程序包使用另一个第三方外部程序包 - other-package
。那么根据约定,这个目录结构是否正确?
+bin
+pkg
+src
|
--- my-package.com/..
|
--- external-package.com/..
我在阅读文档后再次提出这个问题的原因是因为与其他语言惯例不同,用户和第三方代码位于同一顶级文件夹中。
答案 0 :(得分:4)
通过irc#go-nuts
用户的所有项目都有一个共同的$GOPATH/src
。这个$GOPATH/src
可能有多个项目(用户,外部包等)。用户只需将$GOPATH/src/mypackage
提交给他们的src repo。
如果您想为src和第三方软件包源提供单独的目录,请在$GOPATH
之前添加另一条路径。 go get
会将第三方软件包下载到该路径。 go-get
将第3个包下载到它在$GOPATH
指定的路径数组中找到的第一个路径。
答案 1 :(得分:1)
对于这个话题,Golang与其他语言是如此不同,我可以说在Golang的第一天很难理解这个话题。我建议你在$ GOPATH / src上安装所有的项目,并且没有更多的那个$ GOPATH。
在GOLANG,我们必须适应它,例如sa http://golang.org/doc/code.html(代码组织)