maven 中的 package 和 groupId 有什么区别

Muh*_*ser 4 java maven

我了解术语groupIdartifactIdversion。在阅读 about 时package,我可以看到它是您的根包的名称。默认是groupId您之前输入的。.

在那种情况下,package和之间有什么区别groupId?我想它总是相同的,或者它们是否可以与如何不同?有人解释

在此处输入图片说明

Ken*_*han 9

似乎您在问package使用 Maven Archetype 生成新的 Maven 项目时意味着什么。

package是配置包含所有生成的源代码的根 java 包。所以,如果你设定的packagecom.foo.bar,生成的项目将包含一个文件夹com/foo/bar//src/main/java

groupId, 与artifactIdversion是您图书馆的一种唯一标识符。这意味着在您将项目打包为 JAR 并将其发布到全世界之后,其他开发人员可以通过指定正确的文件将其导入到他们的项目中使用groupIdartifactIdversion在他们的pom.xml.

所以,这package只是你的项目内部使用的内部根包,它不会影响开发者如何定位你的 JAR 并将其导入到他们的项目中。该packagegroupId可以是不同的。

(但当然,您应该将包命名为某个唯一名称,这样它就不会与其他知名库发生冲突(例如,不要将其命名为java.langorg.springframework等)

  • 最佳答案( 我爱你 ) (3认同)