go-lang项目文件夹结构约定

时间:2014-04-10 13:25:46

标签: go

我只想确认我对Go项目中典型项目文件夹结构的理解,该项目遵循Go tool conventions

如果我正在编写名为my-package的程序包,该程序包使用另一个第三方外部程序包 - other-package。那么根据约定,这个目录结构是否正确?

+bin
+pkg
+src
  |
  --- my-package.com/..
  |
  --- external-package.com/..

我在阅读文档后再次提出这个问题的原因是因为与其他语言惯例不同,用户和第三方代码位于同一顶级文件夹中。

2 个答案:

答案 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(代码组织)