Maven简介
1、传统项目管理状态简介
1、jar包不统一,jar包不兼容
2、Maven是什么
1、Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM:项目对象模型
pom.xml————> 项目对象模型<—————>依赖管理—————>本地——————>私服——————>中央
3、Maven作用
1、项目构建
2、依赖管理
3、统一开发结构
4、Maven的安装与配置
Maven的基础概念
1、仓库
1、仓库:用于存储资源,包含各种jar包
2、仓库分类:
(1)本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
(2)远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护,存储所有资源的仓库
私服:部门/公司范围内存储资源的仓库,从中央获取资源
私服的作用:
(1)保存具有版权的资源,包含购买或自主研发的jar
(2)中央仓库的jar都是开源的,不能存储具有版权的资源
(3)一定范围内共享资源,仅对内部开放,不对外共享
2、坐标
1、什么是坐标?
maven中的坐标用于描述仓库中资源的位置
2、maven坐标的组成
groupId:
artifactld:项目名称
version:版本号
3、maven坐标的作用
3、仓库配置
1、本地仓库配置
2、远程仓库配置
配置阿里镜像仓库
4、第一个Maven项目
5、依赖管理
1、依赖配置
2、依赖传递
依赖具有传递性:直接依赖、间接依赖
3、依赖传递冲突问题
(1)路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
(2)声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
(3)特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
4、可选依赖:可选依赖指对外隐藏当前所依赖的资源——不透明
5、排除依赖:指主动断开依赖的资源,被排除的资源无需指定特定版本——不需要
6、依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围:
(1)主程序范围有效(main文件夹范围内)
(2)测试程序范围有效(test文件夹范围)
(3)是否参与打包(package指令范围)
6、生命周期与插件
1、项目构建生命周期
maven构建生命周期描述的是一次构建过程经理了多少个事件
2、插件
(1)插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
(2)默认maven在各个生命周期上绑定有预设的功能
(3)通过插件可以自定义其他功能