我有一个托管在 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,我至少有以下两个选择:
使用名称中包含托管站点的 groupId 是一种流行的选择。在 http://search.maven.org 搜索
虽然最好使用您真正拥有的域,但在 groupId 中使用托管站点是一个明智的后备方案。您应该尝试确保您选择的名称与托管公司本身(例如 com.google)无关,但与托管网站(例如 com.googlecode)相关联,以便清楚地表明您是该网站上的一个项目而不是底层公司的项目。
我认为你应该在 groupId 中使用你自己的域,而不是 github.* - 这意味着该项目归 Github 所有。
虽然 Maven 项目的许多
groupId
都源自 Web 域,但它们源自启动该项目的人员的域 - github 只是一个方便的服务,让其他人可以访问您的项目。
因此,您应该选择一个特定于您的 ID 就像那里的所有其他项目一样。
另一个选项是
foo.bar
作为 groupId,但带有 github
的 groupId 也不错。