Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
2024Maven高级操作 PDF 下载
匿名网友发布于:2024-03-28 10:14:02
(侵权举报)
(假如点击没反应,多刷新两次就OK!)

2024Maven高级操作 PDF 下载 图1

 

 

资料内容:

 

Web开发讲解完毕之后,我们再来学习Maven高级。其实在前面的课程当中,我们已经学习
Maven
我们讲到 Maven 是一款构建和管理 Java 项目的工具。经过前面 10 多天 web 开发的学
习,相信大家对于 Maven 这款工具的基本使用应该没什么问题了。我们掌握了 Maven 工具
的基本使用之后,其实对于一些简单的项目的构建及管理基本上就没什么问题了。
但是如果我们需要开发一些中大型的项目,此时仅凭我们前面所学习的 Maven 的基础知识
就比较难以应对了。所以我们接下来还需要学习 Maven 提供的一些高级的功能,这些功能
在构建和管理 Java 项目的时候用的也是非常多的。
Maven高级内容包括:
分模块设计与开发
继承与聚合
私服
 
1. 分模块设计与开发
 
1.1 介绍
所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆
分成多个模块进行开发。
 
1). 未分模块设计的问题
如果项目不分模块,也就意味着所有的业务代码是不是都写在这一个 Java 项目当中。随着
这个项目的业务扩张,项目当中的业务功能可能会越来越多。
假如我们开发的是一个大型的电商项目,里面可能就包括了商品模块的功能、搜索模块的功
能、购物车模块、订单模块、用户中心等等。这些所有的业务代码我们都在一个 Java 项目
当中编写。
此时大家可以试想一下,假如我们开发的是一个大型的电商网站,这个项目组至少几十号甚
至几百号开发人员,这些开发人员全部操作这一个 Java 项目。此时大家就会发现我们项目
管理和维护起来将会非常的困难。而且大家再来看,假如在我们的项目当中,我们自己定义
了一些通用的工具类以及通用的组件,而公司还有其他的项目组,其他项目组也想使用我们
所封装的这些组件和工具类,其实是非常不方便的。因为 Java 项目当中包含了当前项目的
所有业务代码,所以就造成了这里面所封装的一些组件会难以复用。
总结起来,主要两点问题:不方便项目的维护和管理、项目中的通用组件难以复用。
 
2). 分模块设计
分模块设计我们在进行项目设计阶段,就可以将一个大的项目拆分成若干个模块,每一个模
块都是独立的。
比如我们可以将商品的相关功能放在商品模块当中,搜索的相关业务功能我都封装在搜索模
块当中,还有像购物车模块、订单模块。而为了组件的复用,我们也可以将项目当中的实体
类、工具类以及我们定义的通用的组件都单独的抽取到一个模块当中。
如果当前这个模块,比如订单模块需要用到这些实体类以及工具类或者这些通用组件,此时
直接在订单模块当中引入工具类的坐标就可以了。这样我们就将一个项目拆分成了若干个模
块儿,这就是分模块儿设计。
分模块儿设计之后,大家再来看。我们在进行项目管理的时候,我就可以几个人一组,几个
人来负责订单模块儿,另外几个人来负责购物车模块儿,这样更加便于项目的管理以及项目
的后期维护。
而且分模块设计之后,如果我们需要用到另外一个模块的功能,我们直接依赖模块就可以
了。比如商品模块、搜索模块、购物车订单模块都需要依赖于通用组件当中封装的一些工具
类,我只需要引入通用组件的坐标就可以了。
分模块设计就是将项目按照功能/结构拆分成若干个子模块,方便项目的管理维护、拓
展,也方便模块键的相互调用、资源共享

 

1.2 实践
 
1.2.1 分析
好,我们明白了什么是分模块设计以及分模块设计的优势之后,接下来我们就来看一下我们
之前所开发的案例工程。
我们可以看到在这个项目当中,除了我们所开发的部门管理以及员工管理、登录认证等相关
业务功能以外,我们是不是也定义了一些实体类,也就是pojo包下存放的一些类,像分页结
果的封装类PageBean、 统一响应结果Result,我们还定义了一些通用的工具类,像Jwts
阿里云OSS操作的工具类等等。
如果在当前公司的其他项目组当中,也想使用我们所封装的这些公共的组件,该怎么办?大
家可以思考一下。
 
方案一:直接依赖我们当前项目 tlias-web-management ,但是存在两大缺点:
这个项目当中包含所有的业务功能代码,而想共享的资源,仅仅是pojo
的实体类,以及 utils 下的工具类。如果全部都依赖进来,项目在启动时
将会把所有的类都加载进来,会影响性能。
如果直接把这个项目都依赖进来了,那也就意味着我们所有的业务代码都
对外公开了,这个是非常不安全的。
 
方案二:分模块设计
pojo包下的实体类,抽取到一个maven模块中 tlias-pojo
utils包下的工具类,抽取到一个maven模块中 tlias-utils
其他的业务代码,放在tlias-web-management这个模块中,在该模块中
需要用到实体类pojo、工具类utils,直接引入对应的依赖即可。