我最近开始使用go并计划为我的代码使用以下目录结构:src/mycompany.com/project
(因此包名称为mycompany.com/project/component
),但在代码审查期间,我的同事(与之合作过)之前)指出将代码放在src/github.com/mycompany/project
中是一种约定(因此包名称为github.com/mycompany/project/component
)。
我可以理解这对个人项目来说很方便,但对于公司项目而言,这看起来很奇怪。为什么哪个源控制网站公司正在使用它?如果公司稍后决定转移到bitbucket怎么办 - 如果所有项目都被重构为包含名称以bitbucket.org
开头?
绝对有可能不使用github.com
:kubernetes包名称以k8s.io/kubernetes
开头,而且书籍的package names以gopl.io
开头(并且都使用github)。
问题是:如果包名称不以github.com
开头,是否有任何警告?例如。也许dep
无效(go get seems to work fine
)或其他什么?
另外:使用包名mycompany.com/project
并在github上托管源代码的正确方法是什么?
答案 0 :(得分:3)
如果您在mycompany.com
设置网络服务器来托管您的Go套餐,那么该方法没有任何问题。
但如果这样做的唯一理由是拥有“虚荣”包名,那可能就不值得了。
换句话说:您的包名必须与其托管位置相匹配。如果您使用GitHub在github.com/mycompany/foo
托管您的项目,那么您的软件包名称 github.com/mycompany/foo
- 在这个问题上别无选择。
如果您想在GitHub上托管您的软件,但仍然使用mycompany.com
作为软件包名称,那么您可以使用GitHub pages功能将GitHub设置为托管mycompany.com
的网页。但是,如果您是一家成熟的公司,那么您可能已经将您的网站托管在其他地方,并且不能将托管移动到GitHub。即使你还没有公司网站,也几乎没有理由为Go软件包做这件事。