目录
一、什么是maven?
maven:是一个基于项目对象模型概念的纯java开发的开源的项目管理工具.
通俗易懂的来说就是管理项目的。
它的主要作用是:
1)进行依赖管理(我们做项目用到的jar包在maven中称为依赖)
2)构建项目(项目编译、打包、测试、部署)
3)分模块开发,提高开发效率
二、Maven的安装及环境配置
1.Maven的下载
官网传送门:http://maven.apache.org/download.cgi(此链接直接跳转到下载页面)
百度网盘:https://pan.baidu.com/s/1WBG-4sFbXN1sFXYvEGB7EA
提取码:xzzv (网盘内含3.3.9和3.6.1两个版本)
2.Maven安装
下载安装包后进行解压,解压到任意路径(自己选择路径,但一定要记住,eclipse和idea配置maven环境需要用到)
注意:解压路径不能含有中文和特殊字符(因为是老外的东西)
2.1解压
解压后的目录:
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架,Maven使用该框架加载自己的类库
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
2.2配置环境变量
Maven依赖java环境,所以使用Maven之前必须配置好java环境(Maven-3.3+,需要jdk7+)
在我们的系统变量中新建(不知道系统变量如何点击链接参照第一篇jdk环境配置,在此不再描述)
jdk环境配置:https://mp.csdn.net/editor/html/108812859
变量名为:MAVEN_HOME,变量值为Maven的安装目录
在path中点击新建:输入%MAVEN_HOME%\bin(win10可以不带分号)配置好的maven环境如图
2.3测试
进入doc命令窗输入:mvn -v 出现如图即为配置成功
三、maven配置
在maven的conf目录中有settings.xml文件,这是maven的配置文件,打开该文件进行配置
3.1配置本地仓库
在settings.xml中找到<localRepository>的注释,在注释之后添加<localRepository>标签,标签内写入自己本地仓库的目录(结果如图,我的在F盘)
3.2JDK配置
同样在settings.xml中找到<profiles>标签,在其中添加<profile>标签,具体添加内容如图
Maven基本配置就以上这些
四、仓库
4.1概念
存储依赖(jar包)的地方,其体现形式就是本地的一个目录(文件夹)
仓库中不仅存放依赖,而且管理着每一个依赖的唯一标识(坐标),java项目凭借坐标获取依赖
坐标:即GVA,G:GroupId(项目标识) A: ArtifactId(项目名) V:Version(项目版本号)
4.2分类
当项目需要依赖时,会从仓库中查找依赖,仓库查找优先顺序为:本地仓库>私服(配置了的话)>公共仓库(配置了的话)>中央仓库
4.3本地仓库
需在settings.xml文件中进行配置,在3.1以讲述,不在阐述。
本地存放依赖的一个地方,在项目中使用过的依赖也会自动添加进该目录
本地仓库常用依赖(内含常用jar包):https://pan.baidu.com/s/1gK1eWbh3GvhYmO0x8DTw7A
提取码:5bjo
4.4中央仓库
Maven中央仓库是由Maven社区提供的仓库,不用进行任何配置,Maven中内置了中央仓库的地址,其中包含了绝大多数流行的开源java构件
中央仓库搜索服务:https://mvnrepository.com/(在此可以搜索需要的依赖信息)
中央仓库地址:http://repo.maven.apache.org/maven2/
在此以junit为例
1)在search中输入junit进行搜索
2)我们需要的是junit>>junit点击junit进入,我们可以看到诸多junit的版本
3)点击任意版本进入,我以4.12为例,图中选中的代码就是我们所需要的依赖,在选中代码中我们可以看到GVA分别是:junit,junit,4.12
此处的<scope>标签为Maven的生命周期,暂不做解释,知道即可,后续再讲解。
4.5公共仓库
因为中央仓库在国外,下载依赖速度过慢,所以我们一般都会配置一个国内的公共仓库替代中央仓库
比如aliyun仓库:https://maven.aliyun.com
可以在settings.xml文件中进行配置,找到<mirrors>标签,在中间添加<mirror>标签按照如图进行配置。
4.6私服
4.6.1概念
私服是架设在局域网的一种特殊的远程仓库,其目的是代理远程仓库及部署第三方构建。
有了私服之后,当Maven需要下载依赖时,直接请求私服,私服上存在则直接下载到本地仓库;若不存在,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
私服相当于一个服务器,但是不是本地层面的,而是公司层面的,公司中所有的开发人员都在使用同一个私服。
私服可以解决在企业做开发时每次需要的jar包都要去中心仓库下载,而且每次下载只能自己使用,不能被其他开发人员使用。
4.6.2私服的好处
1)节省自己的外网带宽
2)加快Maven构建
3)部署自己内部的第三方构件
4)提高稳定性,增强控制
4.6.3私服的架构
私服的搭建会后续给出。