首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

maven的父子工程pom.xml

maven的父子工程pom.xml

maven带来了项目继承的管理


Maven Project可以理解为父工程。

Maven Module可以理解为子工程。


创建Maven Module工程必须有存在的父工程,maven就是通过父子工程进行工程管理的。


我们以项目为例子。onlinestore是一个主项目,onlinestore-core、onlinestore-interf、 onlinestore-chinaweb、onlinestore-americaweb是onlinestore的4个子项目(其中前两个是java 项目,后边两个是web项目)。
父项目和子项目在MyEclipse里边是平级的关系,在磁盘的目录结构中,子项目在父项目所在的文件夹中。

在pom.xml文件中,我们打开父项目的pom.xml文件,里边可以找到:

    <modules>
    <module>onlinestore-core</module>
    <module>onlinestore-interf</module>
    <module>onlinestore-chinaweb</module>
    <module>onlinestore-americaweb</module>
    </modules>



另外,在4个子项目的pom.xml的文件中,也能找到类似的:

    <parent>
    <artifactId>parent</artifactId>
    <groupId>com.uuwit.onlinestore</groupId>
    <version>0.0.1-SNAPSHOT</version>
    </parent>



也就是说,在父项目和子项目中,都有说明他们之间的关系。


通常一个大的项目会将项目分成多个模块,比如上边咱们举的例 子,core是项目的一些核心类或者组件,interf放接口类,其余两个分别是两个相对独立的web模块。正常情况下,两个web模块比如会依赖 core和interf这两个项目。而两个web项目之间通常并不会有依赖关系,但是他们之间却有很多共性的东西,比如说很多类似的配置、很多类似的 jar包等等,这时候父项目和子项目的优势就能体现出来了。我们知道maven父项目和子项目的pom.xml是有继承关系的,也就是说各个模块相同的部 分,我们可以配置到父项目的pom.xml文件中,这样子项目中的pom.xml只放自己个性的东西就可以了,这大大减少了工作量。另外,在编译和打包等 其他阶段,都可以统一在父项目中来进行,maven会自动操作其中的子项目,提高了效率。
【注意:】事实上,所有的maven项目都会继承一个超级pom,这个pom就是%M2_HOME%\lib\maven-2.2.1-uber.jar中的org\apache\maven\project\pom-4.0.0.xml。


所以 如果我们要建立 父子关系

只要在 主项目的pom.xml中添加相应的 modules 说明

以及在子项目中添加 parent说明即可。
返回列表