如果 go 包名称不以 github.com 开头,需要注意什么?

yna*_*ame 7 naming-conventions go godeps

我最近开始使用 go 并计划为我的代码使用以下目录结构:(src/mycompany.com/project因此包名称为mycompany.com/project/component),但是在代码审查期间,我的同事(以前使用过 go)指出,将代码放在src/github.com/mycompany/project(所以包名称是github.com/mycompany/project/component)。

我可以理解这对于个人项目来说很方便,但是对于公司项目来说它看起来很奇怪。为什么使用哪个源代码控制网站公司很重要?如果公司稍后决定迁移到 bitbucket,该怎么办 - 所有项目都应该重构为以 开头的包名称吗bitbucket.org

绝对可以不使用github.comkubernetes的包名称以 开头k8s.io/kubernetes,而 go book 的包名称以 开头gopl.io(并且都使用 github)。

问题是:如果包名称不以 开头,有什么注意事项吗github.com?例如,可能dep无法正常工作(go get seems to work fine)或其他什么?

mycompany.com/project另外:在 github 上托管包名称和源代码的正确方法是什么?

Fli*_*mzy 5

如果您设置 Web 服务器来mycompany.com托管 Go 包,那么这种方法没有任何问题。

但如果这样做的唯一原因是拥有“虚荣”的包名称,那么它可能不值得。

换句话说:您的包名称必须与其托管位置匹配。如果您使用 GitHub 托管您的项目,那么github.com/mycompany/foo您的包名称 github.com/mycompany/foo-- 没有选择。

如果您想将软件托管在 GitHub 上但仍用作mycompany.com包名称,那么您可以使用GitHub 页面mycompany.com功能将 GitHub 设置为托管的网页。但如果您是一家成熟的公司,那么您可能已经将网站托管在其他地方,并且不能选择将托管转移到 GitHub。即使您还没有公司网站,实际上也没有理由为了 Go 包而这样做。

  • “您的包名称必须与其托管位置匹配”*或提供 go-import 标头*。 (2认同)