一、Maven概述
1、Maven
Maven 是一个项目管理工具
2、Maven解决的问题
- jar 包问题
- 编译
- 测试
- 运行
- 打包
3、Maven的组成
- 项目对象模型 :pom.xml
- 标准集合:目录结构标准
- 一个项目生命周期(Project Lifecycle)
- 依赖管理系统:通过配置文件管理
- 用来运行定义在生命周期阶段中插件目标的逻辑
4、Maven目录介绍
- bin:核心命令
- boot:启动器
- conf:配置文件
- lib:依赖jar包
5、Maven仓库
- 仓库:用于存放jar包
- 分类 - 本地仓库:本地缓存
- 远程仓库:私服
- 中央仓库:Maven的jar包服务器
 
6、Maven工程结构
- src:源码 - main:主工程代码 - java :主工程代码
- resources:配置文件
- wabapp:web项目的资源目录(jsp/html/WEB-INF…)
 
- test:测试代码 - java :主工程代码
- resources:配置文件
 
 
- main:主工程代码 
- pom.xml:配置文件
二、Maven命令
- compile编译:将 src/main/java 下的文件编译为 class 文件输出到 target目录下
- test测试:执行 src/test/java 下的单元测试类
- clean清理:删除 target 目录及内容
- package打包- jar 包:java 工程
- war包:web 工程
- pom包
 
- install安装:将 maven 打成 jar 包或 war 包发布到本地仓库
三、Maven生命周期
- 清理
- 编译
- 测试
- 打包
- 安装
- 部署
同一套生命周期中,执行后边的操作,会自动执行前面的操作
四、Maven坐标
1、坐标格式
- 项目名称,定义为组织名+项目名,类似包名
 <groupId>com.itheima</groupId>
- 模块名称
 <artifactId>hello_maven</artifactId>
- 当前项目版本号
 snapshot 为快照版本即非正式版本,release 为正式发布版本
 <version>0.0.1-SNAPSHOT</version>
- <packaging>:打包类型- jar:执行 package 会打成 jar 包
- war:执行 package 会打成 war 包
- pom :用于 maven 工程的继承,通常父工程设置为 pom
 
<dependency><groupId>com.itheima</groupId><artifactId>hello_maven</artifactId> <version>0.0.1-SNAPSHOT</version><scope>provided</scope>
</dependency>
2、插件
<!--设置编译版本为 1.8-->
</build>
<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin>
</plugins>
</build>
3、依赖范围
| 依赖范围 | 编译 | 测试 | 运行 | 例子 | 
|---|---|---|---|---|
| compile | Y | Y | Y | |
| test | - | Y | - | Junit | 
| provided | Y | Y | - | servlet-api | 
| runtime | - | Y | Y | JDBC | 
| system | Y | Y | - |