在第一次写一个多模块的maven pom时,我不知道。
首先,我的父母pom:
...
<modelVersion>4.0.0</modelVersion>
<groupId>project.room_management</groupId>
<artifactId>room_management</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>room_management</name>
<modules>
<module>room_management_dao</module>
<module>room_management_domain</module>
<module>room_management_service</module>
<module>room_management_gui</module>
</modules>
...
和其中一个孩子:
...
<parent>
<groupId>project.room_management</groupId>
<artifactId>room_management</artifactId>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>project.room_management</groupId>
<artifactId>room_management_domain</artifactId>
<version>1.0</version>
...
考虑到我不需要从父母到儿童poms共享的共同模块,我可以删除没有“风险”的父母声明进入儿童poms吗?或者Maven确实需要它来进行模块编译?
答案 0 :(得分:1)
您不需要模块中的<parent>
部分。
这主要是指每个模块必须是独立的 - 您不能通过父级共享配置部分。
答案 1 :(得分:1)
在此示例中,您需要父元素,因为您在gui和服务之间存在依赖关系(对dao的服务也是如此)。此外,您需要定义模块之间的依赖关系,以查看哪个模块使用哪个模块。另一方面,maven需要此信息来预测模块的构建顺序,这很重要。 拥有这种关系的另一个好处是你可以在父模块中定义依赖项的插件/版本以及许多其他东西。