maven搭建父子项目
- 父工程:父工程又称为父控制器,只是一个简单的工程,不能单独运行。作用是将子模块跟子工程聚合在一起。父控制器中的pom.xml配置,在子模块跟子工程中都可以被继承。
- 子工程:项目中创建的具有业务逻辑并且可以单独部署的的子模块称为子工程,一个项目中不同的子工程通过在pom.xml中添加同一个父工程而整合在一起。
- 子模块:提取出了一些子工程中通用的模块,做成jar包。当子工程需要使用的时候只要在pom.xml中添加依赖就好了。
创建父工程
- 打开eclipse,右键new->project,找到maven,选择maven Project点击next。

2、勾选创建一个简易工程Create a simple project

3、填写组名跟项目名,注意packaging一定要选择pom

4、父控制器创建好之后,删除自动生成的src文件夹

至此,父控制器就创建好了,让我们来看一下父控制器的pom.xml

只有一些简单的控制器的坐标信息以及打包方式。我们接着往下操作。
创建子模块
- 选中刚刚创建的maven项目右键->maven->New Maven Module Project

2、Module Name填写自己的子项目名,点击next

3、一般的jar工程选择maven-archetype-quickstart模板,web工程选择maven-archetype-webapp模板。选完之后next

4、Package里是系统默认生成的包,建议改成自己的包名,修改完点finish。

这样就创建好了一个子模块,如果要创建多个子模块重复上面的步骤即可。
这里我创建了3个jar工程1个web工程。如图

其中maven-web为web工程,可以发布到tomcat上进行部署启动。maven的父子工程也就创建完毕了。
此时我们可以再来看看父控制器的pom.xml发生了什么变化

我们发现父控制器的pom.xml中多出了modules标签。里面的各个module就是你所创建的子模块。就是这段modules标签,将各个子模块聚合到一起使之成为一个完整的大工程。
为什么要使用父子工程
相比于原先的创建项目方式,我认为有以下优点
- 父子工程对于模块的分离程度更高了
看一个例子:
按照以往的创建项目方式,一个maven项目就是一个大工程,一开始还能进行简单的测试编译,但是随着项目的不断变大和复杂化,后期再做改动则可能牵一发而动全身。但是使用父子工程,每个模块都是独立的,他们通过父控制器聚合在一起,这样当你要改动一个模块的时候你改动的也只是这一个模块而已,并不会影响其他的模块。
- 父子工程使代码更清晰,提高了重用
看一个例子:
父控制器的存在之一就是为了去除重复
一个项目存在多个模块,可能同时由多个人开发,比如abc3个模块,3个模块都是基于spring的那么3个开发都需要引入spring的核心jar包,这样就引入了3份,但是使用父子工程,则只需要在父工程中引入了,则子工程自动继承。
参考: https://blog.csdn.net/nvisalsd/article/details/80803277
http://blog.sina.com.cn/s/blog_15fb5fc170102y35w.html
maven搭建父子项目的更多相关文章
- 【maven】 在 MyEcplise上使用maven搭建Web项目
二.在My Ecplise上使用Maven搭建Web项目 1.新建一个maven项目 2.create一个简单的骨架 3.就像在ecplise中一样设置项目的以下配置 4.新创建的项目结构如下 ...
- Maven 搭建 SSM 项目 (oracle)
简单谈一下maven搭建 ssm 项目 (使用数据库oracle,比 mysql 难,所以这里谈一下) 在创建maven 的web项目时,常常会缺了main/java , main/test 两个文件 ...
- 如何使用maven搭建web项目
博客园注册了有二十多天了,还没有写过博客,今天就发一篇,也便于后面查找笔记. 我个人已经做了几年的java web开发了,由于所在的公司是业务型公司,用的都是一些老旧的稳定技术,很少接触到稍微新点的内 ...
- IDEA使用maven搭建spring项目
spring框架 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发.从简单 ...
- J2EE开发框架搭建(1) - maven搭建多项目
怎样使用maven搭建多个项目 1. 创建一个maven project 2. 在frame-parent项目上面点击右键,新建Maven Module 3. 完毕之后再建立一个web项目 4. 依照 ...
- maven搭建ssh项目及遇到的问题
如果采用手动添加jar包的方式搭建项目,会使效率降低,传到github上时,下载时需要下载很多jar包,用maven管理项目可以提高效率 我在搭建maven项目时遇到了 1) java.lang.No ...
- 02.基于IDEA+Spring+Maven搭建测试项目--详细过程
一.背景介绍 1.1公司相关技术 Git:是一款免费的开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,方便多人集成开发 Maven:是基于项目对象模型(POM),可以通过一小段描述信息 ...
- 01.基于IDEA+Spring+Maven搭建测试项目--综述
目前公司的测试工作中常见两种接口:HTTP和Dubbo,这两种接口类型均可以使用相关测试工具进行测试,但都会有一定的局限性和不便之处,具体如下: 1.HTTP接口,当需要对于参数进行加密解密时,就得对 ...
- 【maven】父子项目的一般姿势
一.为什么需要创建maven父子项目. 一般一个业务较多的项目,如果我们做服务拆分的话,有些公共的模块就只能做成jar包了.你将util.constant.model封装成jar包是比较好的,如果da ...
随机推荐
- 快速ni
代码: while(p>0) (mul(a,b)) = a*b; { 等同于二分 if(p%2==1) mul(ans,a); 目的是为了二分个基数的二次方乘 ...
- python3练习100题——009
今天的题目好像有点水... 原题链接:http://www.runoob.com/python/python-exercise-example9.html 题目:暂停一秒输出. 我的代码: impor ...
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- 使用鼠标左键事件实现VR中的Eye Gaze Input
1.光标以及光标动画的显示 using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...
- 1-Django2.2安装指南
django快速安装指南 作为一个Python Web框架,Django需要Python环境.下面是Django需要对应的python版本. Django版本 python版本 1.11 2.7, 3 ...
- 如何删除github中的repository
打开个人界面->点击进入想删除的repository的界面->拉到最下面的danger zone->delete
- 算法竞赛入门经典第二版 回文词P49
#include<bits/stdc++.h> using namespace std; char rev[]="A 3 HIL JM O 2TUVWXY51SE Z 8 &qu ...
- 牛客多校第一场 A Equivalent Prefixes 单调栈(笛卡尔树)
Equivalent Prefixes 单调栈(笛卡尔树) 题意: 给出两个数组u,v,每个数组都有n个不同的元素,RMQ(u,l,r)表示u数组中[l,r]区间里面的最小值标号是多少,求一个最大的m ...
- OSS链接出现 connection pool shutdown错误修改
在类中创建了OSSClient对象 ,方法共用此实例对象,在前端很短的时间内连续提交,造成异常错误. 解决方法时将OSSClient对象在方法中创建
- Spring Boot中快速操作Mongodb
Spring Boot中快速操作Mongodb 在Spring Boot中集成Mongodb非常简单,只需要加入Mongodb的Starter包即可,代码如下: <dependency> ...