Maven
一、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
xml
<dependency>
<groupId>com.itheima</groupId>
<artifactId>hello_maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
2、插件
xml
<!--设置编译版本为 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 | - |