Java 包名是否必须与artifactory';项目的groupId是多少?

Java 包名是否必须与artifactory';项目的groupId是多少?,java,maven,package,Java,Maven,Package,我有一个maven项目,其pom如下所示: <groupId>com.example.check</groupId> <artifactId>first-project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> com.example.check 第一个项目 1.0-快照 罐子 这个项

我有一个maven项目,其pom如下所示:

<groupId>com.example.check</groupId>
  <artifactId>first-project</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
com.example.check
第一个项目
1.0-快照
罐子
这个项目有
src/main/java
,所有java源代码都将驻留在这里

包名是否必须与pom的
artifactId
中的相同,即:
com/example/check

我们可以给一个不同的包名,比如:
abc/xyz/check


package name
与pom的
artifactId
有何关联。他们之间有什么联系?

不,maven不在乎。它只是一个二进制blob,通常对Java有特殊的意义

如果您至少在工件的名称和内容之间进行某种形式的对齐,那么用户(和维护人员)的生活就会变得更轻松

这不是强制性的

然而,人们往往遵循一些惯例。根据命名规则:

组ID应该遵循Java的包名规则。这意味着它以您控制的反向域名开始。例如 org.apache.maven,org.apache.commons

Maven不执行此规则。有许多遗留项目不遵循此约定,而是使用单个单词组ID。但是,很难获得一个新的单词组ID,以便将其包含在Maven中央存储库中

Java包名称是任意的,只要您遵循语言语法即可。看


关于
artifactId
,这可以是您喜欢的任何内容。

谢谢您的回答。你能告诉我一些关于“某种”对齐的信息吗?如果你拥有“curiousmind.org”,那么可以合理地预期你的Maven组id是“org.curiousmind.someproject”,你的Java类放在“org.curiousmind.someproject”下面。没有什么强迫你这么做——这正是人们所期望的。