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地址
注意:如果我们重新在私服里面创建新的仓库,注意将新创建的仓库添加到仓库组中
私服资源上传和下载
当我们在聚合工程中执行上传指令,我们的工程都将执行上传指令。但是如果我们有的模块没有继承父模块此时指令将执行出错
- 为什么此时只有一个快照仓库中有我们上传的资源呢?
我们发布的版本会更新,但是不会主动删除
我们怎样配置我们私服中代理仓库的资源从阿里云的镜像中下载呢?
关于私服的总结