Maven环境搭建
maven的官网:http://maven.apache.org/
下载
官方下载地址:http://maven.apache.org/download.cgi
在今日课程资料安装程序中给大家提供了已经下载好的包,我们可以直接使用
安装
maven是一个绿色软件,解压即安装,非常容易,
我们找到今日课程资料中的安装程序,将里面的apache-maven-3.6.1-bin.zip直接解压到D盘根目录下即可
解压完成后我们可以查看一下maven自己的一个目录结构如下
各目录结构说明:
- bin:可执行程序目录,
- boot:maven自身的启动加载器
- conf:maven配置文件的存放目录
- lib:maven运行所需库的存放目录
环境配置
maven的运行需要java的环境,需要我们配置JAVA_HOME环境变量,这个相信大家已经存在了
下面在去配置MAVEN_HOME的环境变量
1:我的电脑-------->属性--------->高级系统设置---------->新建系统变量MAVEN_HOME,
系统变量值就是maven软件的根目录,我们刚刚已经将maven解压到D盘了,因此变量值就如图中所示
2:环境变量配置好之后需要测试环境配置结果,我们需要在DOS命令窗口下输入以下命令查看输出
mvn -v
如果能够看到输出的maven的版本信息代表配置成功
Maven基础概念与配置
仓库
仓库:用于存储资源,主要是各种jar包
关于仓库,我们前面讲到了有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库
中央仓库:maven团队自身维护的仓库,属于开源的
私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源
本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源
私服的作用:
(1)保存具有版权的资源,包含购买或自主研发的jar
(2)一定范围内共享资源,能做到仅对内不对外开放
坐标
我们说maven的仓库里存储了各种各样的资源(jar包),那这些资源我们如何找到它们呢?我们需要知道它们具体的一个位置才能知道如何找到它们,这个就叫坐标
坐标:maven中的坐标用于描述仓库中资源的位置
https://repo1.maven.org/maven2/
那maven中的坐标是如何构成的呢?
maven坐标的主要组成如下:
- groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)
- artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)
- version:定义当前资源的版本号
packaging:定义资源的打包方式,取值一般有如下三种
(1)jar:该资源打成jar包,默认是jar
(2)war:该资源打成war包
(3)pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构
如果要查询maven某一个资源的坐标,我们通常可以去maven的仓库进行查询,
https://mvnrepository.com/,在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标
输入资源名称进行检索
点击你想要的资源进行查看
选择版本查看坐标
maven坐标的作用:
使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。
仓库配置
开发者要在自己电脑上做开发,首先要做的就是配置本地仓库
默认情况下maven本地仓库的位置在哪儿呢?
我们可以选择在全局进行配置,在maven的配置文件conf/settings.xml中可以找到它的说明
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> -->
也就是在系统盘当前用户目录下的.m2/repository,比如我当前的系统用户是yang,则默认的本地仓库仓库位置在C:\Users\yang\.m2\repository
因为我们平时开发项目所有的资源会比较多,而且各种资源还有好多的版本,资源与资源之间还有相互依赖的这种情况,因此本地仓库保存的内容会非常的多,它的体积会很大,如果放在C盘下不太合适,因此我们可以自己来指定一个位置作为本地仓库的位置,这个指定同样是需要来修改maven的配置文件conf/settings.xml
在我们前面查看这个文件的时候大家会发现它提供了一个标签<localRepository>/path/to/local/repo</localRepository>,
这个标签中配置的值就是我们本地仓库的位置,但是这个标签是在注释中的,也就是说目前不起作用,因此我们要将该标签挪出注释,并修改标签内的值,指定一个新的位置作为本地仓库的位置,例如
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <localRepository>D:\maven-repository</localRepository>
如果是局部用户配置:在仓库的同级目录也可以包含一个settings.xml配置文件,在里面也可以进行指定
注意:局部用户配置优先与全局配置(遇见相同配置项的时候)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nhur89zF-1646104820005)(./img/17.png)]
另外大家需要注意:maven默认连接的远程仓库位置是:(即中央仓库)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-APM4UBZL-1646104820006)(./img/18.png)]
此站点并不在国内,因此有时候下载速度非常慢,因此我们可以配置一个国内站点镜像,可用于加速下载资源
我们在conf/settings.xml配置文件中找到<mirrors>标签,在这组标签下添加镜像的配置,如下
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>