博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven的聚合与继承DEMO(以及前后端分离)
阅读量:2345 次
发布时间:2019-05-10

本文共 1266 字,大约阅读时间需要 4 分钟。

目录

 

目录



前言:

当一个独立的maven项目不断扩大,我们会增加人手,并将项目按模块或者按层次进行划分,由不同的人进行负责相应的模块或者层次。这里就需要对项目进行拆分,拆分之后又需要一个可以一次构建所有拆分项目的“总项目”。 那么,总项目就是聚合了所有子项目的家伙,这就是聚合的概念。

当一个公司从原先的一个项目,扩展到了多个项目,开始有了多个团队,A团队负责A项目,B团队负责B项目。每个项目技术负责人虽然使用相同的Java技术与框架,但可能各自使用了不同的版本。甚至说使用了Java技术的不同框架。那么对于公司方面来说,整体的维护和管理是很不方便的。 如果有那么一个标准,类似于Java中的超类概念,每个项目团队的项目就是这个超类的子类实现,子类使用超类规定的方法并可以有自己的拓展。 那么从整体来讲,这样就不会那么混乱。 这就是继承的概念。(当然继承的好处不止这么一点。)

maven作为依赖管理的工具,同样提供了这样的功能,就是pom的继承。公司提供标准的pom,规定了Spring使用的版本,以及相关的依赖版本,并且有公司的技术大牛负责处理各个依赖的版本冲突问题。每个项目组的项目只要继承这个大牛pom,不需要关系依赖版本,冲突等问题,从而专注以业务开发。(其实SpringBoot就是免费的大牛pom,而且还不仅仅提供了pom

 

实现一个聚合项目:

聚合其实是可以和继承分开使用的, 但如果说,他们聚合在一起,a模块使用4.0.0版本的Spring,b模块使用5.0.0版本的Spring,那么这就会产生很多意想不到的冲突和事件。

所以,常常来说,聚合会与继承一起使用。 那么接下来,我简单演示一下使用Eclipse快速搭建一个聚合项目

  1. p 父项目 (聚合)
  2. a 业务核心
  3. b 系统web

1、创建p项目

 

2、修改packaging类型为pom

(这个项目作为被集成和聚合任务,不需要有自己的业务代码。)

3、添加业务核心a项目(作为后端)

选中p项目,点击new,添加一个Maven Module

4、添加web项目。作为前端的开发。

其他的操作一样,maven骨架选择webapp。

 

5、整体项目大纲

这样我们就可以单独的构建a b 以及 整体的构建p。

6、b项目引入a依赖。

b作为前端,需要与后端核心代码进行交互,即需要引入a依赖

对于前端开发来说, 他只需要下载b,进行开发,如果后端提供了新版本,前端只需要修改version即可捕获,又或者使用SNAPSHOT,每次更新最新的a项目代码。

7、a项目的开发与单元测试

对于普通的小公司来说,他们的后端开发都是通过web页面进行测试代码的正确性的,其实这样并不高效。应该使用单元测试

若引入了单元测试,作为后端开发,a项目无需引入b,只要完成业务逻辑,实现单元测试,完成代码覆盖。那么后端就与前端分离了。

 

8、拓展

a的后端还可以进行拆分,具体的可以根据业务的需求,项目的分工进行,此处不再赘述。

 

源码:

ssm项目结构+前端交互 的webapp 源码:

转载地址:http://ifsvb.baihongyu.com/

你可能感兴趣的文章
VNC server简单配置vnc
查看>>
win7 安装的offic2007
查看>>
rman本库恢复性测试
查看>>
IBM TSM磁带管理操作小记一则
查看>>
ORA-00258: NOARCHIVELOG 模式下的人工存档必须标识日志
查看>>
Java调用bat文件
查看>>
此责任无可用函数
查看>>
java获取数字和汉字
查看>>
excel Option Explicit webadi
查看>>
ICX错误
查看>>
windows Xp NTLDR is missing
查看>>
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查看>>
Centos 6.x 安装配置MySQL
查看>>
-source 1.5 中不支持 diamond 运算 请使用 -source 7 或更高版本以启用
查看>>
jar包读取资源文件报错:找不到资源文件(No such file or directory)
查看>>
超简单:Linux安装rar/unrar工具与解压到目录示例
查看>>
Eclipse创建Maven Java8 Web项目,并直接部署Tomcat
查看>>
RedHad 7.x服务器操作记录
查看>>
BindException: Cannot assign requested address (Bind failed)解决办法
查看>>
Centos7:Docker安装Gitlab
查看>>