对于不属于任何公司/组织/网站的maven项目,群组ID的明智选择是什么?我理解使用约定com.companyname.projectname是为了避免项目之间的命名空间冲突,但是我应该如何为我开始的单个项目提出前缀?
答案 0 :(得分:6)
groupId 将在所有项目中唯一标识您的项目,因此我们 需要强制执行命名架构。它必须遵循包名称 规则,什么意味着必须至少作为你的域名 控制,您可以根据需要创建任意数量的子组。看着 有关包名称的更多信息。
例如。 org.apache.maven,org.apache.commons
确定groupId粒度的一个好方法是使用 项目结构。也就是说,如果当前项目是多个 模块项目,它应该向父项添加新的标识符 的groupId。
例如。 org.apache.maven,org.apache.maven.plugins, org.apache.maven.reporting
因此,正如您对包名称所做的那样,理想情况下应使用代表项目的域名。如果你没有,你只需要对你的项目进行成像。因此,“您控制的域名”可能是您的个人域名,也可能是此特定项目的域名。即com.andyw.nextbigthing
或com.nextbigthing
。如果您将其视为某种东西,那么社区可以提到这一点很有意思,您可以跳过个人姓名并使用org
代替。即org.nextbigthing
。
答案 1 :(得分:0)
如果您使用一些流行的存储库(例如GitHub),则应遵循next rules:
如果您在SourceForge上的项目名称为foo,则可以使用 net.sf.foo 。如果您的用户名是Github上的bar,则可以使用 com.github.bar 。您还可以使用您控制的另一个反向域名。组ID不必反映项目宿主。