警告如果包名称不是以github.com??

时间:2018-04-15 05:03:08

标签: go naming-conventions godeps

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

我可以理解这对个人项目来说很方便,但对于公司项目而言,这看起来很奇怪。为什么哪个源控制网站公司正在使用它?如果公司稍后决定转移到bitbucket怎么办 - 如果所有项目都被重构为包含名称以bitbucket.org开头?

绝对有可能不使用github.comkubernetes包名称以k8s.io/kubernetes开头,而且书籍的package namesgopl.io开头(并且都使用github)。

问题是:如果包名称不以github.com开头,是否有任何警告?例如。也许dep无效(go get seems to work fine)或其他什么?

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

1 个答案:

答案 0 :(得分:3)

如果您在mycompany.com设置网络服务器来托管您的Go套餐,那么该方法没有任何问题。

但如果这样做的唯一理由是拥有“虚荣”包名,那可能就不值得了。

换句话说:您的包名必须与其托管位置相匹配。如果您使用GitHub在github.com/mycompany/foo托管您的项目,那么您的软件包名称​​ github.com/mycompany/foo - 在这个问题上别无选择。

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