多模块maven pom

时间:2012-04-15 22:33:15

标签: java dependencies maven-3

在第一次写一个多模块的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确实需要它来进行模块编译?

2 个答案:

答案 0 :(得分:1)

您不需要模块中的<parent>部分。

这主要是指每个模块必须是独立的 - 您不能通过父级共享配置部分。

答案 1 :(得分:1)

在此示例中,您需要父元素,因为您在gui和服务之间存在依赖关系(对dao的服务也是如此)。此外,您需要定义模块之间的依赖关系,以查看哪个模块使用哪个模块。另一方面,maven需要此信息来预测模块的构建顺序,这很重要。 拥有这种关系的另一个好处是你可以在父模块中定义依赖项的插件/版本以及许多其他东西。