- Maven介绍
- 下载与安装
- Maven基础概念
- 第一个Maven项目(手工制作)
- 第一个Maven项目(IDEA生成)
- 依赖管理
- 生命周期与插件
- 学习总结
Maven是什么?
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
Maven下载官网
Maven历代版本
下载步骤如下:
-
进入官网后,选择Download
-
点击Download,划到最下边,找到Previous Releases下边的archives。
-
点击archives链接,就可以看到maven的各个历史版本了。
-
选择maven3.6.1版本。
之所以选择3.6.1版本是因为idea和maven不是同一个公司的产品,版本太高可能存在不兼容的问题。 -
点击进入binaries目录下载zip文件。
-
Maven属于绿色版软件,解压即安装
-
Maven环境变量配置,在环境变量中添加JAVA_HOME以及MAVEN_HOME
-
测试环境配置结果,在任意位置调出cmd输入MVN若显示如下结果,则表明Maven已经成功安装并配置好系统变量。
-
在setting.xml中完成镜像仓库配置
使用镜像仓库的好处是加快依赖下载速度 ,原本下载依赖都要去中央仓库下载,速度很慢。而配置完镜像仓库后,通过访问阿里的仓库大大加快下载速度。
其中
- 配置本地仓库存放的位置
由于maven默认的本地仓库存放位置在C盘下的.m2文件夹中,占用C盘资源这样不好,因此我们先在D盘创建本地仓库的文件夹,再修改setting.xml中的内容。
- 修改IDEA的Maven配置
点击File选择settings后,搜索Maven,完成如下图配置,点击Apply和OK。
至此Maven的下载安装、配置以及在IDEA中配置自己的Maven工作就完成了。
Maven基础概念仓库
- 仓库的作用是用来存储资源,包含各种jar包
仓库分类
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源。
- 远程仓库:非本机电脑上的仓库,为本地仓库提供资源。分为中央仓库和私服。其中,中央仓库是Maven团队维护,存储所有资源的仓库。私服是部门或公司范围内存储资源的仓库,从中央仓库获取资源。
私服的作用:
- 保护具有版权的资源,包含购买或者自主研发的jar
- 一定范围内共享资源,仅对内部开放,不对外开放。
坐标
- Maven中的坐标用于描述仓库中资源的位置。
坐标的主要组成
- groupId:定义当前Maven项目隶属组织名称
- artifactId:定义当前Maven项目名称(通常是模块名称)
- version:定义当前项目版本号
- …
Maven工程目录结构
在src同层目录下创建pom.xml
4.0.0 com.itheima project-java 1.0 jar junit junit 4.12
Maven项目构建命令
maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔。
- mvn compile : 编译
- mvn clean :清理
- mvn test :测试
- mvn package :打包
- mvn install :安装到本地仓库
原型创建Java项目
原型创建Web项目
依赖:依赖是指当前项目运行所需jar包,一个项目可以设置多个依赖,依赖具有传递性。
依赖传递:直接依赖:在当前项目通过依赖配置建立的依赖关系 间接依赖:不是直接依赖的jar包引用。
依赖传递冲突问题
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 声明优先: 当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先: 当同级配置了相同资源的不同版本,后配置的覆盖先配置的
可选依赖
可选依赖是指对外隐藏当前所依赖的资源----不透明
关键标签:
junit junit 4.12 true
排除依赖
排除依赖是指主动断开依赖的资源,被排除的资源无需指定版本—不需要
关键标签
生命周期与插件junit junit 4.12 org.hamcrest hamcrest-core
项目构建生命周期
- Maven构建生命周期描述的是一次构建过程经历了多少个事件。
Maven对项目构建的生命周期划分为3套 - clean:清理工作
- default:核心工作,例如编译、测试、打包、部署等
- site:产生报告、发布站点等
插件
- 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
- 默认maven在各个生命周期上绑定有预设的功能
- 通过插件可以自定义其他功能
本次学习了maven基础部分的知识,内容主要包括对maven的介绍、maven的下载安装及配置以及maven的使用和依赖管理。maven是一款非常不错的项目管理工具,有三大功能,非常适合用于项目构建。在maven中可以通过设置可选依赖和排除依赖实现对依赖传递的管理。



