一、Maven概述
1.介绍
Apache Maveb是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。
2.作用
(1)方便的依赖管理;
(2)统一的项目结构;
(3)标准的项目构建流程。
3.官网
3.仓库
(1)本地仓库:自己计算机上的一个目录;
(2)中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
(3)远程仓库(私服):一般由公司团队搭建的私有仓库。
4.Maven安装
(1)解压apache-maven-3.6.1-bin.zip。
(2)配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。
<localRepository>...</localRepository>
(3)配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:
(4)配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量;
(5)测试:mvn -v。
二、Maven-IDEA集成
1.配置Maven环境
(1)选择IDEA中Settings->Build,Execution,Deployment->Build Tools->Maven;
(2)设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库属性。
2.IDEA创建Maven项目
(1)创建模块,选择Maven,点击Next;
(2)填写模块名称,坐标信息,点击finish,创建完成。
3.Maven坐标
(1)什么是坐标?
- Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置;
- 使用坐标来定义项目或引入项目中需要的依赖。
(2)Maven坐标主要组成:
- groupld:定义当前Maven项目隶属组织名称(通常是域名反写);
- artifactld:定义当前Maven项目名称(通常是模块名称);
- version:定义当前项目版本号。
4.IDEA导入Maven项目
(1)方式一:打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击。
(2)方式二:File => Project Structure => Modules => + => Import Module=>要导入工程的pom.xml=>OK。
三、依赖管理
1.依赖配置
(1)依赖:指当前项目所运行所需要的jar包,一个项目可以引入多个依赖。
(2)配置:
- 在pom.xml中编写<dependencies>标签;
- 在<dependencies>标签中使用<dependency>引入坐标;
- 定义坐标的groupld,artifactld,version;
- 点击刷新按钮,引入最新加入的坐标。
(3)注意事项:
- 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖;
- 依赖的坐标信息,在https://mvnrepository.com/中搜索。
2.依赖传递
(1)依赖具有传递性:
-
直接依赖:在当前项目中通过依赖配置建立的依赖关系;
-
间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。
(2)排除依赖:排除依赖之主动断开依赖的资源,被排除的资源无需指定版本。
3.依赖范围
(1)依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...<scope>设置其作用范围。
(2)作用范围:
- 主程序范围有效。(main文件夹范围内)
- 测试程序范围内有效。(test文件夹范围内)
- 是否参与打包运行。(package指令范围内)
4.生命周期
(1)Maven的生命周期就是为了所有的maven项目构建过程进行抽象和统一。
(2)Maven中有三套相互独立的生命周期:
- clean:清理工作
- default:核心工作,如:编译、测试、打包、安装、部署等。
- site:生成报告、发布站点等。
(3)每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段
(4)主要阶段:
- clean:移除上一次构建生成的文件
- compile:编译项目源代码
- test:使用合适的单元测试框架运行测试(junit)
- package:将编译后的文件打包,如:jar、war等
- install:安装项目到本地仓库
(5)注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
(6)执行指定生命周期的两种方式:
- 在IDEA中,右侧的maven工具栏,选中对应的生命周期,双击执行。
- 在命令行中,通过命令执行。例如:mvn compile