Maven高级(继承与聚合+私服)

分模块设计和开发

为什么要分模块设计?
一个项目往往是分为好几个模块的
如果不同模块全写在一个项目里面
所有的程序员都要调用这有个项目就难以维护
在这里插入图片描述
在这里插入图片描述
比如我们之前设计的板块
就不太合理,现在我们把实体类和对应的工具类单独开出两个maven模块存储
然后让我们的主功能类依赖这两个模块,这样更安全,也更方便
在这里插入图片描述
在这里插入图片描述

新建两个maven项目,因为这些类本身我们的功能类,不用启动服务器,所以就创建maven项目即可
在这里插入图片描述
然后把pojo包放到同名对应的包下,把原项目的pojo包进行删除
然后让原项目依赖新建的模块即可
在这里插入图片描述
新建utils的maven项目
在这里插入图片描述
把对应的依赖改改就差不多了和上面的pojo同理
在这里插入图片描述

继承

前面三个项目都设计到lombok依赖
这样一直重复的写,代码复用性太低
maven项目之间的继承能解决这个问题
我们只需要创建一个maven父工程,让maven子工程进行继承
子工程中相同的依赖写入到父工程中
子工程会继承对应的配置信息!
这也是Spring的起步依赖的原理
在对应的pom.xml里用parent标签来指定父工程

在这里插入图片描述

像我们SpringBoot的统一的父工程
spring-boot-starter-parent
在这里插入图片描述

实现

问题1
打包方式设置成pom类型
在pom文件里怎么设置即可
在这里插入图片描述

如图右上角有常用打包方式说明
在这里插入图片描述
问题2
maven当中只能单继承
但我们的tails-web-management一级继承了springboot的项目
但是maven可以多重继承
可以让父工程继承Springboot即可

然后就把共有的依赖放入父工程即可
在这里插入图片描述
配置父工程的时候会有一个
relativePath标签,指代的是父工程的相对路径(到pom文件的位置)
在这里插入图片描述
正常这样不写的话,是直接从本地仓库查找
这样写
在这里插入图片描述
在这里插入图片描述

还有就是,子工程继承复工成的话,groupID如果和父工程相同就不用写了
会自动继承,当然你想要不同的话,还是要写的

小结

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

版本锁定

就是这个依赖还可以起到版本统一个锁定的效果
正常的话 我们模块拆分很多需要一个一个修改依赖的版本(一个项目的模块依赖的版本肯定要一样)
但是可以通过父工程的dependencyManagement来统一管理依赖版本
注意:dependencyManagement只管理依赖的版本,不会添加依赖到子工程
在这里插入图片描述

在这里插入图片描述
这个标签只是子工程里有这个依赖时进行版本的管理
而不是把依赖继承给子工程

进一步简化
就是我们的父工程
如果依赖比较多,会有大量的依赖且版本号分散比较零散,不便于查看
我们可以将对应的版本号,封装到一个自定义属性标签中
在对应的版本号里面用${}即可引用properties里面的标签名,最终写入的是标签里面的文本
在这里插入图片描述
这样的话更改对应的配置项即可
不用一个一个往下找,方便我们去管理和维护
在这里插入图片描述
在这里插入图片描述

聚合

我们的项目中
web-mangment依赖这pojo和utils两个模块
当我们需要打包项目上线的时候
在这里插入图片描述
会出现找不到对应jar包的错误
因为他会先去本地仓库找这两个jar包
在这里插入图片描述
但是默认的话它是不会自动安装的
需要我们手动用maven的install功能
安装完毕两个子工程,并且安装对应的父工程
tails-parent
然后再打包才能完成打包操作
在这里插入图片描述

可以发现这个过程挺繁琐的
so我们需要maven聚合来解决这个麻烦
聚合能让我们实现一键编译,一键打包,一键安装等等

实操

一般我们需要一个聚合项目
这个项目介绍空工程,和我们的父工程很匹配
巧了,一般开发中我们的父工程同时也是聚合工程
当我们安装聚合工程到本地仓库
他下面的工程全会安装到本地仓库,这就是聚合
在这里插入图片描述
而且
他会根据对应工程的依赖关系自动的设置对应的构建顺序
我们只需要在聚合工程(父工程)里面设置modules标签
把对应的需要聚合的工程写到module标签里即可
但是无是要在对应的聚合工程里进行操作的啊,会把底下的全部都打包一遍(聚合工程不会进行操作,但是module对应的工程会进行聚合工程进行的操作)
在这里插入图片描述
在这里插入图片描述

继承与聚合总结

在这里插入图片描述

maven私服

B用A开发jar包
按理来说A上传到中央仓库B就可以依赖
但是中央仓库不是谁想上传就能上传的,所以我们需要私服
在这里插入图片描述
在这里插入图片描述
学习就是学习私服的使用拉
搭建这事目前咱还到不了那么高的高度

资源上传私服和下载

这是我们提前搭建好的私服
在这里插入图片描述
资源上传
IDEA里面指定上传资源的url地址
然后再maven的配置文件里,指定我们的私服的用户名和密码进行操作(权限操作)
资源上传先是install操作上传到本地仓库,然后deploy操作上传到私服
下载的话
需要知道私服的位置,在maven的配置文件配置私服的位置
还有私服分三个的意思是:central就是代表从中央仓库下载的jar包,而上面两个是我们自己的资源,至于这两个不同,看下图绿色字幕(主要和我们开发项目版本有关)
在这里插入图片描述
具体的话
就是我们的模块后面版本有SNAPSHOT的话就存储在SNAPSHOT(默认创建模块就是带这个后缀的)
只要是没有这个后缀就会存储在Release仓库里
在这里插入图片描述
步骤开始
1.设置访问私服的密码和用户名(这里是两个一个是快照仓库,一个是发行仓库)
注意:要在maven的settings.xml(文件夹里的)里的servers标签里面进行设置
在这里插入图片描述
2.设置上传地址是在maven工程的pom.xml配置的
也是两个版本的
在这里插入图片描述
3.配置私服(仓库组)的地址(maven的setting.xml里面配置)
所谓仓库组就是把几个仓库组合一下,只写一个地址即可(比如我们的那三个仓库)
在这里插入图片描述

使用私服挺固定的就是这三步操作
上网查一下都行
两个id记得对应
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小袁拒绝摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值