目录
零、前言
借鉴1:maven安装和配置阿里云镜像(各种详细配置) - Yan_Yang - 博客园
借鉴2:【狂神说Java】JavaWeb入门到实战_哔哩哔哩_bilibili
一、Maven
1.什么是maven?为什么要用到maven?
maven是一个项目架构管理工具,对,它只是一个工具,不需要太深入的了解其原理。Maven很强大,不过我们目前能用到的只是它导入jar包的功能。
2.maven的核心思想——约定大于配置
- 约定不要去违反
- 根据约定的目录结构去写Javaweb代码
3.下载maven
去官网下载:Maven – Download Apache Maven
下载Windows版本的Binary压缩包。解压后,出来一个文件夹。
目录结构如下:
唯一需要注意的是conf目录下的settings.xml配置文件。
里面需要看的地方也不多。
二、配置环境变量
在系统变量(不是用户变量)处进行如下3个配置:
(1)M2_HOME: maven安装目录下的bin目录
(2)MAVEN_HOME: 就是maven的目录
(3)path :加入%MAVEN_HOME%\bin
测试一下,在cmd中输入
mvn-version
如下图出来版本号就对了。
如果显示mvn不是命令的话说明环境变量配置还未成功。
三、maven仓库
3.1 什么是maven仓库
上面我们学过,对我们来说,maven就是一个帮助我们引入jar包的工具。maven从仓库中引入jar包,仓库又分为两种:
- 本地仓库
- 远程仓库 https://mvnrepository.com/
- 中央仓库 Maven Central Repository Search
- Sonatype仓库
- JCenter仓库
很多人误以为 远程仓库=中央仓库,其实是不对的!
中央仓库是远程仓库的其中一个。是由Maven社区提供的,也就是官方的一个。除了中央仓库以外,还由世界各地开发人员提供的非官方远程仓库。
而上面提供的这个网址 https://mvnrepository.com/ 可以搜索所有远程仓库中注册的jar包。
3.2 maven依赖搜索顺序
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
- 步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
- 步骤 2 - 在中央仓库中搜索,如果找不到,如果我们还设置了其他远程仓库,则执行步骤 4,如果找到了则下载到本地仓库中以备将来引用。
- 步骤 3 - 如果其他远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
- 步骤 4 - 在其他远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。
3.3 设置远程仓库(只设置了中央仓库)的阿里云镜像
就是前面提到的conf目录下的settings.xml配置文件。如果我们不配置,我们下载jar包是从国外的远程仓库下载的,下载速度很慢,通过修改配置文件换成阿里云的镜像可以提高下载速度。
配置方法:找到未在注释标签内的mirrors,大约在145行左右,接着我们往mirrors标签内添加一个<mirror>代码段,然后保存
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
PS: 我们只添加了中央仓库的镜像。
我们的项目可能会报出“依赖 not found”的错误,有两个可能的原因:
1. 我们想要添加的包不在中央仓库而由别的远程仓库提供(大多数情况下!)。
2. 我们想要添加的包就是由中央仓库提供,但是中央仓库更新不及时 或者 阿里云的镜像更新不及时。
maven配置,以及项目"Dependency 'xxxx‘ not found"解决过程_lixld的专栏-CSDN博客
3.4 配置本地仓库
本地仓库:jar包放在本地。
远程仓库:每次构建项目要从网上下载jar包。会慢一些
仍然是在conf目录下的settings.xml配置文件中配置。
大概49行这里,
可以看到,默认的maven本地仓库路径在 ${user.home}/.m2/repository
这里要注意的是,IDEA自带的MAVEN默认的本地仓库也在这个地方
我还没法确定下图中已经存在的.m2文件夹是IDEA自带的maven创建的还是我刚刚独立下载的maven创建的。所以.m2这个文件夹里repository虽然是空的,但是最好不要随便删掉。
我们给它修改一下,把本地仓库放到maven的安装目录里面去。
新建一个名为maven_repo的文件夹。
然后将 maven_repo文件夹的地址放入到<localRepository>标签里面去。保存即可。