14

我有一个托管在 GitHub 上的开源 maven 项目。假设网址是https://github.com/foo/bar

现在我想将它上传到 Sonatype OSS Maven 存储库。我检查了他们对 groupId 有严格的规定(https://docs.sonatype.org/display/Repository/Choosing+your+Coordinates)。

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

问题是,对于托管在 GitHub 上的项目,正确的 groudId 是什么?

由于用户生成的网站具有域 foo.github.io,我至少有以下两个选项:

  • com.github.foo
  • io.github.foo
4

4 回答 4

7

在名称中使用带有托管站点的 groupId 是一种流行的选择。在http://search.maven.org上搜索

  • 网.sf
  • 源锻造
  • 谷歌代码
  • github

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

于 2013-11-12T11:27:00.207 回答
4

我认为您应该在 groupId 中使用自己的域,而不是 github.* - 这意味着该项目归 Github 所有。

于 2013-11-12T09:20:15.167 回答
1

虽然许多groupIdMaven 项目都源自 web 域,但它们源自启动项目的人的域 - github只是一个方便的服务,可以让其他人访问您的项目。

因此,您应该选择一个特定于您的 ID,就像那里的所有其他项目一样

于 2013-11-12T10:22:00.760 回答
0

另一个选项是foo.bargroupId,但 groupId withgithub也很好。

于 2013-11-12T09:28:41.517 回答