一、Maven 简介
1.1 传统项目管理:
1.2 Maven 的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式。
- 依赖管理:管理项目依赖的资源(jar 包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
1.3 下载与安装
Maven官网:http://maven.apache.org/
Maven 下载地址:http://maven.apache.org/download.cgi
Maven下载的位置:E:\SoftWare\programmer\maven
1.4 Maven 中文件的介绍
bin:Maven 核心运行文件
boot:类加载器
conf:核心配置
lib:Maven 依赖的 jar 包
Maven 属于绿色版软件,解压即安装。
1.5 Maven 环境变量配置:
- 依赖 Java,需要配置 JAVA_HOME
- 设置 MAVEN 自身的运行环境,需要配置
二、Maven 基础概念(重点)
2.1 仓库:用于存储资源,包含各种 jar 包
中央仓库
私服仓库
本地仓库
2.2 坐标:(查找资源的定位方式)
https://mvnrepository.com
坐标的组成:组成ID、项目ID、版本号
2.3 本地仓库配置:
1、Maven 仓库默认存储位置:
2、自己配置的 Maven 本地仓库位置:
2.4 远程仓库配置:
1、镜像仓库配置:
2.5 全局 setting 与 用户 setting 区别
- 全局setting 定义了当前计算器中 Maven 的公共配置
- 用户 setting 定义了当前用户的配置
三、第一个Maven 项目(手工制作)(⭐)
Maven 主要是做构建的
3.1 Maven 工程目录结构
3.2 Maven 构建命令
3.3 插件创建工程
使用模板生成(直接在命令行输入下面的命令)
四、第一个 Maven 项目(IDEA)(重点)
4.1 配置 Maven
4.2 手工创建 Java 项目
4.3 原型创建 Java 项目
4.4 原型创建 Web 项目
4.5 插件
web 工程的启动,需要 tomcat 插件
tomcat7 插件的安装,主要作用是运行 web 项目
pom.xml 文件案例:
<?xml version="1.0" encoding="utf-8" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!-- 指定pom的模型版本 --><modelVersion>4.0.0</modelVersion>
<!-- 打包方式,web工程打包为war,java工程打包为jar --><packaging>war</packaging><!-- 组织id,公司域名反写--><groupId>com.itheima</groupId>
<!-- 项目id--><artifactId>web01</artifactId>
<!-- 版本号:release(完成版),snapshot(开发版)--><version>1.0-SNAPSHOT</version><!--设置当前工程的所有依赖--><dependencies>
<!-- 具体的依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><!--构建 --><build><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><!--配置--><configuration><!--端口--><port>80</port><!--路径--><path>/</path></configuration></plugin></plugins></build></project>
五、依赖管理(重点)
5.1 依赖配置
依赖指当前项目运行所需的 jar,一个项目可以设置多个依赖
格式:
4.2 依赖传递
1、依赖传递中的冲突问题:
4.3 可选依赖
可选依赖:对外隐藏当前所依赖的资源(对外不透明)
控制这个资源不被别人看到。
4.4 排除依赖
排除依赖:主动断开依赖的资源(不需要这些依赖的资源)(被排除的资源无需指定版本)
不需要这个依赖,将它排除
5.5 依赖范围
- 依赖的 jar 默认情况可以在任何地方使用,可以通过 scope 标签设定其作用范围
- 作用范围
- 主程序范围有效(main 文件夹范围内)
- 测试程序范围有效(test 文件夹范围内)
- 是否参与打包(package 指令范围内)
1、依赖范围的传递性
- 带有依赖范围的资源在进行传递时,作用范围将受到影响。
六、生命周期与插件
6.1 项目构建生命周期
- Maven 构建生命周期描述的是一次构建过程经历了多少个事件
1、Maven 对项目构建的生命周期划分为 3 套:
- clean:清理工作
- default:核心工作,例如编译、测试、打包、部署等
- site:产生报告,发布站点等
2、clean 生命周期
- pre-clean:执行一些需要在 clean 之前完成的工作
- clean :移除所有上一次构建生成的文件
- post-clean :执行一些需要在 clean 之后立刻完成的工作
3、default 构建生命周期
4、site 构建生命周期
- pre-site : 执行一些需要在生成站点文档之前完成的工作
- site : 生成项目的站点文档
- post-site :执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
- site-deploy :将生成的站点文档部署到特定的服务器上
6.2 插件
- 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
- 默认 maven 在各个生命周期上绑定有预设的功能
- 通过插件可以自定义其他功能