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说明即可。 |