maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型POM(Project Object Modle)
maven的作用:
1、项目构建:提供标准的,跨平台的自动化项目管理构建方式
2、依赖管理:方便快捷的管理项目依赖的资源jar包,可以统一控制版本
3、统一开发结构:提供标准的,统一的项目结构
maven基础概念:
仓库:用于存储资源,包含各种jar包。仓库分为本地仓库和远程仓库
坐标:Maven中坐标用于描述仓库中资源的位置
groupId:定义当前maven项目的隶属组织名称(通常是指包名)
artifactId:定义当前maven项目的名称 (通常是指模块名称)
version:定义当前资源的版本好
packaging:定义当前项目的打包方式(默认方式为打jar包)
坐标作用:使用唯一的标识,通过改标识可以下载对应的资源
依赖传递:
依赖传递的冲突问题:
路径优先:当依赖中出现相同资源时,层级越深,优先级越高
声明优先:当资源在同层级被依赖时,后配置的覆盖前面配置的
分模块开发与设计:
将一个项目分成多个maven项目模块,由主模块统一管理
聚合:
作用:聚合用于快速构建maven项目工程,一次性管理多个模块。
方法:新建一个maven模块,只留下pom文件,在pom文件里面将其打包类型设置为pom。
如何由主模块去管理其他所有模块:
模块名(地址) 模块名(地址) 模块名(地址)
注意:参与聚合操作的模块最终执行的先后顺序与模块间的依赖关系有关,与配置顺序无关
继承:
作用:通过继承可以是在在子模块(工程)中使用父模块中的依赖配置(与Java继承类似)
方法:在父模块中加入需要被被子模块继承的依赖:
然后在子模块的pom文件中配置:
//前面三个与父模块中的坐标相同 父模块的pom文件的地址
属性:
1、自定义属性:
作用:等同于Java中的变量,方便统一管理重复代码(例如:多个依赖的版本号一致时,当需要全部改变时则只需要修改变量)
定义格式:
<(变量名)spring.version> (5.1.9.RELEASE)变量值 (变量名)spring.version> <(变量名)junit.version> (4.12)变量值 (变量名)junit.versio
调用格式:${变量名}
2、内置属性:
作用:使用maven的内置属性,快速配置
调用格式:${version} ${basedir}等
3、Setting属性:
作用:使用maven配置文件setting.xml中的标签属性,用于动态配置
调用格式:${settings.localRepository}
4、Java系统属性:
作用:读取Java系统属性
调用格式:${user.home}
5、环境变量属性:
作用:读取环境变量属性
调用格式:${env.JAVA_HOME}
资源配置:
配置资源文件:
地址 true
多环境开发配置:
开发环境名称1 true jdbc链接
ps:笔记部分来源:黑马程序员 & @哈瑞斯联邦



