GitHub 上托管的 Maven 项目的 groupId

问题描述 投票:0回答:4

我有一个托管在 GitHub 上的开源 Maven 项目。假设网址是 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 上的项目,正确的 groudId 是什么?

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

  • com.github.foo
  • io.github.foo
java maven github sonatype
4个回答
8
投票

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

  • net.sf
  • 来源锻造
  • 谷歌代码
  • github

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


4
投票

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


1
投票

虽然 Maven 项目的许多

groupId
都源自 Web 域,但它们源自启动该项目的人员的域 - github 只是一个方便的服务,让其他人可以访问您的项目。

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


0
投票

另一个选项是

foo.bar
作为 groupId,但带有
github
的 groupId 也不错。

© www.soinside.com 2019 - 2024. All rights reserved.