From Maven's Naming Conventions :
groupId will identify your project uniquely across all projects, so we
need to enforce a naming schema. It has to follow the package name
rules, what means that has to be at least as a domain name you
control, and you can create as many subgroups as you want. Look at
More information about package names(*). eg. org.apache.maven
,
org.apache.commons
A good way to determine the granularity of the groupId is to use the
project structure. That is, if the current project is a multiple
module project, it should append a new identifier to the parent's
groupId.
eg. org.apache.maven
, org.apache.maven.plugins
,
org.apache.maven.reporting
(*) :
Then from the Naming Conventions in Java for packages :
The prefix of a unique package name is always written in all-lowercase
ASCII letters and should be one of the top-level domain names,
currently com
, edu
, gov
, mil
, net
, org
, or one of the English
two-letter codes identifying countries as specified in ISO Standard
3166, 1981.
Subsequent components of the package name vary according to an
organization's own internal naming conventions. Such conventions might
specify that certain directory name components be division,
department, project, machine, or login names.
Also have a look at this question : Java packages com and org