Maven进阶


分模块开发的意义
- 我们前面的开发都只有一个模块
![]()
分模块开发与设计

在上面ssm的代码中,我们的所有代码都是写在一个模块中的。我们现在将domain和dao部分,分离出来作为独立的2给模块


- 一个注意点
在我们拆分或者是写一个模块时,页需要去导入这个模块所需要的依赖
![]()
我们这是做完后再拆解模块,在实际开发中就是直接创建模块进行开发的
![]()
![]()
我们使用install只能将模块加载到我们自己的本地仓库中,但是团队中其他人想要获取我的模块内容该怎样获取呢?
这个我们可以通过私服来解决,这个在最后一节课中会讲到
第二部分:依赖管理

依赖传递



- 依赖冲突
![]()
![]()



可选依赖与排除依赖
我们将依赖标记为可选以来,在被被人引用的时候,可以避免依赖冲突,但是不影响自己访问


所以我们无法进行可选依赖,但是我们可以进行排除依赖达成这个目的



在开发中如果是使用第三方,我们一般使用排除依赖,如果是别人使用我们的,一般使用可选依赖

第三部分:继承与聚合
现在我们已经由单模块开发变成了多模块开发,但是多模块开发会带来一些问题

聚合

聚合工程的编写




继承

聚合和继承通常是一起编写的。我们将聚合工程作为我们的父工程。我们将子模块都会使用的依赖写到父工程的pom文件中。在子模块的pom文件中声明该模块继承自哪个模块
当我们的版本要做升级的时候,我们只需要升级父类模块的依赖版本,子类模块的该依赖的版本将都进行了升级
- 1.将公共依赖抽取到父模块中
- 2.定义依赖管理(当一个依赖并不是所有模块都要使用,可以在父模块将该依赖设置成依赖管理,在子模块在声明该模块才会被子模块继承使用)
- 总结步骤
![]()
![]()
![]()



maven在打包成war的时候最起码需要有web.xml文件**
属性


这样我们可以统一控制我们依赖的版本
配置文件加载属性
解决问题,当打war包的时候,如果没有web.xml文件的时候不要报错?

解决步骤





maven的其他属性


实际上就是我们将属性文件中的值放在到maven仓库中,然后我们的属性文件到maven中读取对应的值
版本管理


第五部分:多环境配置与应用

多环境开发


如果我们在更换环境的时候需要更改pom.xml中的默认环境配置,这样就太麻烦了。所以我们通过执行附带环境id的maven指令替代,
这样就不用更改默认环境配置了



- 对执行命令的解释
![]()
经验:我们在修改配置后需要将他们重新install到仓库中
跳过测试
测试过程可以保证我们程序打包时候是正确的。但是有一些特殊的情况我们希望不要给我们的程序进行测试

跳过测试的方法
- 只能跳过全部测试
![]()
- 可以跳过部分测试
在pom.xml中配置跳过测试(排除掉一些东西)。maven中测试功能是由插件提供的
![]()
![]()
- 使用命令跳过测试(好像也只能跳过全部的测试)
![]()
![]()
![]()
第六部分:私服

私服简介与安装



- 使用
![]()
![]()




成功设置了密码888888
- 总结
![]()
私服仓库的分类



我们现在希望,在上传的时候需要指定仓库,但是在下载的时候能不能不需要指定在哪个仓库里面下载呢?


本地仓库访问私服配置

关于本地仓库访问私服的配置在maven的settings.xml里面进行配置



仓库组的地址就是他的url地址
注意:如果我们重新在私服里面创建新的仓库,注意将新创建的仓库添加到仓库组中
私服资源上传和下载



当我们在聚合工程中执行上传指令,我们的工程都将执行上传指令。但是如果我们有的模块没有继承父模块此时指令将执行出错
- 为什么此时只有一个快照仓库中有我们上传的资源呢?
![]()
我们发布的版本会更新,但是不会主动删除
我们怎样配置我们私服中代理仓库的资源从阿里云的镜像中下载呢?

关于私服的总结
























浙公网安备 33010602011771号