如果go软件包名称不为';不要从github.com开始?

如果go软件包名称不为';不要从github.com开始?,go,naming-conventions,godeps,Go,Naming Conventions,Godeps,我最近开始使用go,并计划为我的代码使用以下目录结构:src/mycompany.com/project(因此包名应该是mycompany.com/project/component),但是在代码审查期间,我的同事(以前与go一起工作过)说指出将代码放在src/github.com/mycompany/project中是一种惯例(因此包名应该是github.com/mycompany/project/component) 我可以理解,这对于个人项目来说很方便,但对于我来说,将其用于公司项目看起来

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

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

绝对可以不使用
github.com
:包名以
k8s.io/kubernetes
开头,而GoBook则以
gopl.io
开头(两者都使用github)

问题是:如果包名不是以
github.com
开头,是否有任何警告?例如,
dep
可能无法正常工作(
go-get似乎工作正常
)或其他原因


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

如果您在
mycompany.com
上设置web服务器来托管您的Go包,这种方法没有任何问题

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


换句话说:您的包名称必须与其宿主位置相匹配。如果您使用GitHub在
GitHub.com/mycompany/foo
上托管项目,那么您的包名是
GitHub.com/mycompany/foo
——在这件事上没有选择


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

Go-get
知道一些代码托管网站(githubs只是Go-get中内置的一个),并且可以通过HTML元标记与几乎任何其他网站合作。请在这里阅读。因此,如果您使用gitlab托管包git.mycompany.com/projeckt,您可能会想将其称为package git.mycompany.com/projeckt。为了给您一个具体的例子来说明上面提到的HTML元标记Volker,这是我们的服务器,它指示从gitlab.example.com/foo/bar:获取名为Go.example.com/foo/bar的包。go.example.com和gitlab.example.com是不同的机器。事实上,对于某些包,它将返回GitHub存储库(代码中没有显示)。@Volker我想这就是我要寻找的。如果你把你的评论移到一个答案上,我会接受它作为答案。谢谢“您的包名称必须与其托管位置匹配”或提供go导入头。