概念: 一款用于管理和构建java项目的工具,是apache下的一个开源项目
作用:
1)依赖配置
依赖: 指的是当前项目运行所需要的jar包,一个项目中可以引入多个依赖
配置:
2)依赖传递
项目依赖的依赖会被自动导入
依赖分类:
排除依赖:主动断开依赖的资源,被排除的资源不需要指定版本
<exclusions>
? <exclusion>
? <groupId>XXX</groupId>
? <artifactId>XXX</artifactId>
? </exclusion>
</exclusions>
3)依赖范围
默认情况: 可以在任何地方使用(主程序范围内,测试程序范围内,是否参与打包运行(package指令范围内))。
可以通过<scope>XXX</scope>设置其作用范围
scope值 | 主程序 | 测试程序 | 打包(运行) | 范例 |
---|---|---|---|---|
compile(默认) | √ | √ | √ | log4j |
test | × | √ | × | junit |
provided | √ | √ | × | servlet-api |
runtime | × | √ | √ | jdbc驱动 |
4)生命周期
对所有的maven项目构建过程进行抽象和统一
3套相互独立的生命周期——每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段,同一套生命周期中,当后面的阶段运行时,前面的阶段都会运行
clean:移除上一次构建生成的文件
compite:编译项目源代码
test:使用合适的单元测试框架运行测试
package:将编译后的文件打包
install:安装项目到本地仓库
执行方式
本质
生命周期是个虚拟的概念,实际上每个操作都是由插件完成的
【未完待续……maven高级部分】