maven构建多模块项目

来源:互联网 发布:windows文件system损坏 编辑:程序博客网 时间:2024/05/23 13:27

一、多模块项目简介

所有用mavan管理的真实项目都应该是分模块的,每个模块对应着一个pom.xml,他们之间继承和聚合互相关联。划分模块后,导入Eclipse变成了n个项目,这会带来复杂度,给开发带来不便,那为什么还要用呢?原因有以下几点:
1、方便重用,如app-util这些模块可以渐渐进化成一个基础公共类,供所有项目使用,这是模块化最重要的一个目的。
2、由于你划分了模块,每个模块的配置都在各自的pom.xml,不用再到一个纷繁复杂的pom中寻找自己的配置。
3、如果你只是在app-util上工作,你不需要build整个项目,只要在app-util目录运行mvn命令即可,这样可以节省时间,尤其是当项目很庞大,build越来越耗时的时候。
4、某些模块,如app-util被所有人依赖,但你不想给所有人修改,你完全可以把app-util拿出来做成另一个项目,只提供jar包,没有修改权限。

二、多模块项目的结构

一个简单的Maven模块结构是这样的:
 
---- app-parent
             |-- pom.xml (pom)
             |
             |-- app-util
             |        |-- pom.xml (jar)
             |
             |-- app-dao
             |        |-- pom.xml (jar)
             |
             |-- app-core
             |        |-- pom.xml (jar)
             |
             |-- app-web
                      |-- pom.xml (war)  

上述简单示意图中,有一个父项目(app-parent)聚合很多子项目(app-util, app-dao, app-core, app-web)。每个项目,不管是父子,都含有一个pom.xml文件。而且要注意的是,小括号中标出了每个项目的打包类型。父项目是pom,也只能是pom。子项目有jar,或者war。根据它包含的内容具体考虑。

三、Eclipse上创建多模块工程的步骤

我们看下在eclipse创建多模块项目的步骤:
1、首先创建一个父项目
new->project->maven->maven project,点击下一步,选择maven-archetype-site-simple,如下

再点击下一步,在groupid和artifactid中输入值,一般groupid指的是项目组织,举例比如奇虎公司,就是com.qihoo,ArtifactID就是项目的唯一的标识符,实际对应项目的名称,这里我们的项目名称叫做app。

选择完成,这时会在eclipse中生成一个项目。
2、接着创建子项目
将项目app中的src文件删除,父项目最主要的功能是管理其他子项目,本身并不用写代码,所以只保留一个pom.xml 就可以了。
选中项目app,点击右键,选择new->project->maven->maven module,填写module name(比如app-util、app-core、app-dao、app-web)点击下一步,这时选择maven-Archetype-site-quickStart(构建app-util、app-core、app-dao时使用)或者maven-Archetype-webapp(构建app-web层时使用),然后选择完成。


创建后的效果

3、最后设置依赖关系
这里app-web依赖app-core、app-util,app-core依赖app-util、app-dao,注意:依赖具有传递性,依赖关系在pom.xml 设置方法如下:


0 0