我有一个maven项目,其pom如下所示:
<groupId>com.example.check</groupId>
<artifactId>first-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
该项目有src/main/java
,所有Java源代码都将驻留在其中。
是否必须使软件包名称与pom的artifactId
即com/example/check
中的名称相同。
我们可以给一个不同的包名称,例如:abc/xyz/check
。
package name
与pom的artifactId
有何关系。它们之间有什么联系?
答案 0 :(得分:2)
不,Maven不在乎。它只是二进制blob,通常对Java来说具有特殊的含义。
如果您在工件的名称和内容之间进行至少某种对齐,将使用户(和维护人员)的生活更加轻松。
答案 1 :(得分:1)
这不是强制性的。
但是,人们倾向于遵循一些惯例。按照Maven documentation的命名方式:
组ID应该遵循Java的程序包名称规则。这意味着它以您控制的反向域名开头。例如, org.apache.maven,org.apache.commons
Maven不执行此规则。许多遗留项目不遵循此约定,而是使用单个单词组ID。但是,很难获得一个新的单个单词组ID的批准以包含在Maven Central存储库中
Java包名称是任意的,只要您遵循以下语言语法即可。参见official Oracle documentation here。
相对于artifactId
,这可以是您想要的任何内容。