托管在GitHub上的Maven项目的groupId

17
我有一个托管在GitHub上的开源Maven项目。假设URL是https://github.com/foo/bar
现在我想将它上传到Sonatype OSS Maven仓库。我查看了他们对groupId(https://central.sonatype.org/publish/requirements/coordinates/#supported-code-hosting-services-for-personal-groupid)有严格的规定。

groupId将在所有项目中唯一标识您的项目,因此我们需要强制执行命名方案。它必须遵循包名规则,也就是说,至少要作为您控制的域名,并且您可以创建任意多个子组。例如:org.apache.maven,org.apache.commons 确定groupId的粒度的一个好方法是使用项目结构。也就是说,如果当前项目是一个多模块项目,它应该在父级groupId后附加一个新的标识符。 例如:org.apache.maven,org.apache.maven.plugins,org.apache.maven.reporting

问题是对于托管在GitHub上的项目,什么是适当的groupId?
作为用户生成的网站,域名为foo.github.io,我至少有以下两个选择:
  • com.github.foo
  • io.github.foo
4个回答

9

在命名时,使用包含托管站点名称的groupId是一种流行的选择。在http://search.maven.org上搜索以下内容:

  • net.sf
  • sourceforge
  • googlecode
  • github

尽管最好使用您真正拥有的域名,但在groupId中使用托管站点作为后备方案是明智的选择。您应该尝试确保选择一个与托管公司本身无关的名称(例如com.google),而与托管站点(例如com.googlecode)相关,以便清楚地表明您是该站点的项目,而不是底层公司的项目。


6
那么 io.github.foocom.github.foo 更好吗? - stderr
2
没有更好的选择,但是现代化程度更高 :) 使用你更喜欢的。 - MariuszS

4

我认为你应该在groupId中使用自己的域名,而不是github.*,因为这会暗示该项目是由Github拥有的。


4
如果你使用com.github,我会同意。但据我所知,io.github是为项目保留的。 - rec

1
虽然许多Maven项目的groupId是从Web域名派生出来的,但它们实际上是从启动项目的人的域名派生出来的- github只是一个方便的服务,让其他人可以访问您的项目。
因此,您应该选择一个对您来说特定的ID,就像那里的所有其他项目一样

0
另一个选项是将foo.bar作为groupId,但带有github的groupId也不错。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接