6
我是Maven的新手,我试图理解为什么我公司的模块被组织到'模块组'中,而且每个子模块都明确声明了其父模块。我不太明白POM参考文献试图说的关于difference between inheritance and aggregation。Apache Maven:继承,聚合和依赖之间有什么区别?
例如,父模块:
<groupId>example.group</groupId>
<artifactId>util</artifactId>
<packaging>pom</packaging>
<name>Util Parent</name>
<modules>
<module>util_client</module>
<module>util_core</module>
<module>util_server</module>
</modules>
及其子之一:
<parent>
<artifactId>util</artifactId>
<groupId>example.group</groupId>
<version>trunk-SNAPSHOT</version>
</parent>
<groupId>example.group.util</groupId>
<artifactId>util_core</artifactId>
<packaging>jar</packaging>
<name>Util Core</name>
为什么宣告两者兼得?它是多余的吗?为了让事情更加混乱,一些UTIL子模块取决于海誓山盟:
<groupId>example.group.util</groupId>
<artifactId>util_client</artifactId>
<packaging>jar</packaging>
<name>Util Client</name>
<dependencies>
<dependency>
<groupId>example.group.util</groupId>
<artifactId>util_core</artifactId>
</dependency>
</dependencies>
很抱歉,如果这是一个问题的一个谎言,但哇,这是令人困惑!谢谢你的帮助。
那么,为什么我不想指定'util_core'作为'util_client'的子模块呢? 'util_client'仍然会编译? –
只有安装'util_core'后才能编译'mvn install'如果从顶层执行它,它将按顺序编译它们。 –