我正在把一些项目从Ant迁移到Maven。作为一个符合规范的人,我想使用已经建立的约定来寻找groupId
和artifactId
,但是我找不到任何详细的约定(有些约定存在,但它们没有涵盖我想知道的点)。
以这个项目为例,先看Java包:com.mycompany.teatimer
Tea timer实际上是两个单词,但Java包命名约定禁止插入下划线或连字符,所以我写在一起。
我选择了与包ID相同的groupId
,因为我认为这是一个好主意。不是吗?
最后,我必须选择一个artifactId
,目前我选择了teatimer
。但是当我看其他Maven项目时,它们使用连字符将artifactId
中的单词分开,像这样:tea-timer
。但是当它连接到groupId
时,看起来很奇怪:com.mycompany.teatimer.tea-timer
。
你会怎么做呢?
另一个例子:
包名称:com.mycompany.awesomeinhouseframework
groupId
:com.mycompany.awesomeinhouseframework
(?)
artifactId
:awesome-inhouse-framework
(?)
package
是Maven构建中的一个元素,用于定义项目的Java包名。groupId
是Maven坐标中的一个元素,用于唯一标识一个项目的组织或者公司。它们在Maven构建过程中有不同的作用。 - KonstantinKgroupId
为com.client.website
还是com.my.website
?根据这个答案,应该选择com.my.website
,因为我不能控制客户网站...但是我感觉应该使用代码真正的所有者的“站点”,这意味着使用com.client.website
。 - Giacomo Alzetta