我用父pom和模块pom创建了一个简单的maven项目。当我执行mvn全新安装时,我注意到父级和模块处于同一级别。
本地存储库中项目的结构:
-parent folder
-module folder
虽然我希望这样:
-parent folder
+—-module folder
这正常吗?
在这种情况下,如果两个模块具有相同的名称会发生什么?
答案 0 :(得分:1)
假设您正在谈论通常位于~/.m2/repository
的本地存储库,是的,这很正常。您必须区分存储库中的文件夹布局和开发的文件夹布局。
如this question中所述,工件始终根据其坐标(groupId
,artifactId
和version
)处于文件夹结构中。
groupIdSplitAtDots/artifactId/version
某些工件是否是另一个工件的模块与本地存储库的目录布局完全无关。
如果有工件com.organisation.topic:artifact-parent:1.2
,com.organisation.topic:artifact-module1:1.2
和com.organisation.topic:artifact-module2:1.2
,文件夹结构将为:
com
|-- organisation
|-- topic
|-- artifact-parent
|-- 1.2
|-- artifact-module1
|-- 1.2
|-- artifact-module2
|-- 1.2
请注意,对于开发来说,将父模块放在父文件夹中通常是个好主意,这样的布局如下:
artifact-parent
|-- artifact-module1
|-- artifact-module2
根据您的第二个问题,不允许使用相同的模块名称(artifactId
s)。关于artifactId
the docs状态:
该工件的标识符,在由组ID给出的组中是唯一的。