我有一个托管在GitHub上的开源maven项目。假设URL是https://github.com/foo/bar。
现在我想把它上传到Sonatype OSS Maven Repository。我检查了他们对groupId有严格的规定(https://central.sonatype.org/publish/requirements/coordinates/#updated-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条答案
按热度按时间m3eecexj1#
在名称中使用groupId和托管站点是一种流行的选择。在http://search.maven.org上搜索
虽然最好使用您真正拥有的域名,但在groupId中使用托管网站是一个明智的后备方案。您应该尝试确保您选择的名称与托管公司本身无关(例如com.google),但与托管网站(例如com.googlecode)有关,以便清楚您是网站上的项目,而不是基础公司的项目。
vcirk6k62#
我认为你应该在groupId中使用你自己的域名,而不是github.* -这意味着项目归Github所有。
eqzww0vc3#
虽然Maven项目的许多
groupId
都是从web域派生的,但它们是从项目启动者的域派生的--github只是一个方便的服务,给予其他人访问您的项目的权限。所以你应该选择一个特定于你的ID just like all the other projects there。
oxosxuxt4#
另一个选项是
foo.bar
作为groupId,但groupId与github
也很好。