Maven使用学习
一、工具介绍
什么是Maven?
Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。
作用
- 管理jar包
- 增加第三方jar包(不需要自己下载jar包)
- 管理jar包之间的依赖关系(maven自动关联下载所有依赖的jar包)
- 将项目拆分成若干个模块:借助于Maven可以将一个项目拆分成多个工程。
Maven仓库说明
- 本地仓库 : 相当于缓存。本地仓库存储在本地的磁盘当中,里面存放的是经常使用的jar包。
- 远程仓库 : 也叫做私服。基本每个公司都会有自己的私服,当本地的磁盘中不存在需要的jar包资源,则会请求私服进行资源下载。
- 中央仓库 : 远程仓库,由jar专业团队统一维护。
二、下载安装

安装完成之后,打开目录

bin文件夹中存放的是可执行文件
boot文件夹存放的是maven需要使用的一些程序
conf文件夹存放的是maven的配置文件
lib文件夹存放的是Jar包
配置环境变量

配置Path

测试安装成功

三、Maven仓库配置
打开conf文件夹下的setting.xml文件
配置本地仓库

配置远程仓库镜像

四、IDEA中的Maven工具
idea中配置maven

依赖引入
依赖的引入从项目中的pom.xml文件中进行配置

在Idea中可以快捷引入依赖
定位在<dependency>
标签内部,右键打开Generate

,选择Add dependency


maven插件添加

设置打包方式

五、Maven常用命令
Maven生命周期
一个maven项目的生命周期
使用maven完成项目的构建,仙姑构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期,如下所示是生命周期各个阶段:

命令介绍
命令 | 说明 |
---|---|
mvn compile | 完成编译操作,执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件 |
mvn clean | 执行完毕后,会将target目录删除 |
mvn test | 执行完毕后,会在target目录中生成三个文件夹: surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件) |
mvn package | 完成打包操作、执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war |
mvn install | 执行mvn install命令,完成将打包好的jar包安装到本地仓库的操作, 执行完毕后会在本地仓库出现安装后的jar包,方便其他工程引用 |
IDEA中的maven管理工具

上方的按钮作用

按钮 | 作用 |
---|---|
![]() | 在配置完pom.xml(引入依赖、配置插件等。。。)后,点击这个按钮进行更新 |
![]() | 重新编译 |
![]() | 下载 |
![]() | 添加项目工程(选择添加工程的pom.xml) |
![]() | 运行maven命令 |
![]() | 选择,跳过测试 |
![]() | 查看依赖关系 |
依赖范围
在pom.xml配置文件,依赖包的信息中,通过<scope></scope>
标签进行依赖范围的设定。
依赖范围 | 说明 |
---|---|
compile | 编译范围,指A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。 |
provided | provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用,provided依赖在编译和测试时需要,在运行时不需要,比如: servlet api被tomcat容器提供。 |
runtime | runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如: jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包。 |
test | test范围依赖在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如 : junit。由于运行时不需要所以test范围依赖不会被打包。 |
system | system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径,需要指定systemPath 磁盘路径,system依赖不推荐使用。 |
Comments NOTHING