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
- maven构建多模块项目
- Maven构建多模块项目
- maven 构建多模块项目
- Maven构建多模块项目
- Maven构建多模块项目
- Maven多模块项目构建
- Maven构建多模块项目
- Maven构建多模块项目
- Maven多模块项目构建
- maven构建多模块项目
- Maven多模块项目构建
- maven构建多模块项目
- Maven构建多模块项目
- Maven构建多模块项目
- 【Maven】使用Maven构建多模块项目
- 【Maven】使用Maven构建多模块项目
- 【Maven】使用Maven构建多模块项目
- 【Maven】使用Maven构建多模块项目
- [Leetcode] 93. Restore IP Addresses 解题报告
- 伪线
- code force 429B dp好题
- 算法随机在一定范围内(min-max)选出m个不重复的数据放到一个数组中
- 向量加减法
- maven构建多模块项目
- git 学习的简单笔记
- VBA代码实例---批量新建工作表模板
- linux开发板和PC电脑ftp文件传输
- jQuery获取某标签的父标签
- 并查集 POJ 1611
- 如何在华为云上部署javaweb项目(windows)
- CSS3中的变形与动画(上)
- 两张图学会VIM编辑器