介绍
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。
Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。
开源项目:https://www.apache.org/index.html#projects-list
作用:1、提供依赖管理,2、统一项目结构,3、提供统一的构建方式。
1、提供依赖管理:不需要手动添加依赖jar包,依赖的升级也简便很多,只需要在pom.xml文件中修正相应的依赖坐标就行。
2、统一项目结构:
无论使用怎样的开发工具都能有统一的项目结构,方便不同开发工具之间的转换。
3、提供统一的构建方式:无论使用什么开发平台都有相同的、自动化的项目构建方式。
介绍和安装
安装步骤
maven依赖管理
依赖配置
依赖简介:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
配置步骤:
1.在 pom.xml 中编写 <dependencies>标签
2.在 <dependencies>标签中 使用 <dependency>引入坐标
3.定义坐标的 groupId,artifactId,version
4.点击刷新按钮,引入最新加入的坐标。
注意事项:如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程会比较耗时,耐心等待)。
如果不知道依赖的坐标信息,(idea中没有引入过的依赖就不会自动补全)可以到https://mvnrepository.com/中搜索。选择使用人数最多的版本。
依赖传递
特点:依赖具有传递性。
Ø直接依赖:在当前项目中通过依赖配置建立的依赖关系
Ø间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
依赖传递的概念类似于继承,即如果A依赖了B,那么A就引入了B所依赖的所有依赖。
依赖传递的可视化:
1、在项目的pom.xml文件右击
2、选择Diagrams
3、选择Show Dependences
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。
依赖范围
依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>…</ scope >设置其作用范围。
作用范围:
Ø主程序范围有效。(main文件夹范围内)
Ø测试程序范围有效。(test文件夹范围内)
Ø是否参与打包运行。(package指令范围内)
生命周期
Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。
Maven中有3套相互独立的生命周期:
clean:清理工作。
default:核心工作,如:编译、测试、打包、安装、部署等。
site:生成报告、发布站点等。
注意:每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
常用生命周期功能:
•clean:移除上一次构建生成的文件
•compile:编译项目源代码
•test:使用合适的单元测试框架运行测试(junit)
•package:将编译后的文件打包,如:jar、war等
•install:安装项目到本地仓库
执行指定生命周期的两种方式:
在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。
在命令行中,通过命令执行。