- 什么是 Maven
Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 - Maven 能解决什么问题
构建工程,管理 jar包,编译代码,自动运行单元测试,打包,生成报表,部署项目,生成 Web 站点等。 - Maven 的两个经典作用
#依赖管理(就是一个管理jar包的过程,通过在 pom.xml 文件中添加所需 jar包的坐标,maven中也有索引的概念)
#仓库:存储插件和jar包。
maven 仓库地址、私服等配置信息需要在 setting.xml 文件中配置,分为全局配置和用户配置。
在 maven 安装目录下的有 conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project
项目,它作为 maven 的全局配置。如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:
u
s
e
r
.
d
i
r
/
.
m
2
/
s
e
t
t
i
n
g
s
.
x
m
l
目
录
中
,
{user.dir} /.m2/settings.xml 目录中,
user.dir/.m2/settings.xml目录中,{user.dir} 指 windows 中的用户目录。
maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。 - Maven 工程的目录结构
作为一个 maven 工程,它的 src 目录和 pom.xml 是必备的。
进入 src 目录后,我们发现它里面的目录结构如下:
src/main/java —— 存放项目的.java 文件
src/main/resources —— 存放项目资源文件,如 spring, hibernate 配置文件
src/test/java —— 存放所有单元测试.java 文件,如 JUnit 测试类
src/test/resources —— 测试资源文件
target —— 项目输出位置,编译后的 class 文件会输出到此目录
pom.xml——maven 项目核心配置文件 - Maven 常用命令
compile:编译 将 src/main/java 下的文件编译为 class 文件输出到 target目录下
test :测试 会执行 src/test/java 下的单元测试类
package:打包 对 java 工程执行 package 打成 jar 包,对于 web 工程打成 war包
注意: 当后面的命令执行时,前面的操作过程也都会自动执行
clean→compile→test→报告→package→install - Maven 指令的生命周期
maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,
这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。 - Maven的依赖结构(坐标定义)
junit
junit
4.9
test
打包类型
- 依赖范围scope的测试
默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和 tomcat 下 jar 冲突)
jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )
junit ----- test (测试有效)
依赖范围由强到弱的顺序是:compile>provided>runtime>test