个别项目的明智组ID?

时间:2016-02-01 20:30:25

标签: maven naming-conventions naming

对于不属于任何公司/组织/网站的maven项目,群组ID的明智选择是什么?我理解使用约定com.companyname.projectname是为了避免项目之间的命名空间冲突,但是我应该如何为我开始的单个项目提出前缀?

2 个答案:

答案 0 :(得分:6)

查看official guide:

  

groupId 将在所有项目中唯一标识您的项目,因此我们   需要强制执行命名架构。它必须遵循包名称   规则,什么意味着必须至少作为你的域名   控制,您可以根据需要创建任意数量的子组。看着   有关包名称的更多信息。

     

例如。 org.apache.maven,org.apache.commons

     

确定groupId粒度的一个好方法是使用   项目结构。也就是说,如果当前项目是多个   模块项目,它应该向父项添加新的标识符   的groupId。

     

例如。 org.apache.maven,org.apache.maven.plugins,   org.apache.maven.reporting

因此,正如您对包名称所做的那样,理想情况下应使用代表项目的域名。如果你没有,你只需要对你的项目进行成像。因此,“您控制的域名”可能是您的个人域名,也可能是此特定项目的域名。即com.andyw.nextbigthingcom.nextbigthing。如果您将其视为某种东西,那么社区可以提到这一点很有意思,您可以跳过个人姓名并使用org代替。即org.nextbigthing

答案 1 :(得分:0)

如果您使用一些流行的存储库(例如GitHub),则应遵循next rules

如果您在SourceForge上的项目名称为foo,则可以使用 net.sf.foo 。如果您的用户名是Github上的bar,则可以使用 com.github.bar 。您还可以使用您控制的另一个反向域名。组ID不必反映项目宿主。