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

Aks*_*wat 6 go

我只想确认我对Go项目中典型项目文件夹结构的理解,该项目遵循Go工具约定.

如果我正在编写一个名为的软件包my-package,它使用另一个第三方外部软件包 - other-package.那么基于约定,这个目录结构是否正确?

+bin
+pkg
+src
  |
  --- my-package.com/..
  |
  --- external-package.com/..
Run Code Online (Sandbox Code Playgroud)

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

Aks*_*wat 4

通过 irc #go-nuts

用户的机器将具有$GOPATH/src所有项目的共同点。这$GOPATH/src可能有多个项目(用户的、外部包等)。用户只需将其提交$GOPATH/src/mypackage到他们的 src 存储库即可。

如果您希望 src 和第 3 方包源有单独的目录,请在$GOPATH. go get会将 3rd 方软件包下载到该路径。go-get将第三个包下载到它在 指定的路径数组中找到的第一个路径$GOPATH