[TOC]
# maven中的坐标和仓库
## 坐标
> 在一个平面坐标系中,有x轴和y轴,x轴就是横线,y轴就是竖线,坐标(x,y)表示这个点距离x轴为y,距离y轴为x的一点,任何一个坐标都能唯一标识该平面中的一点。
在Maven 的世界中,任何一个依赖、插件、或者项目的构建输出,都可以称为构件。
所有构件通过坐标作为唯一的标识。
![](https://box.kancloud.cn/8cef6bcff68879a920daf1fbd9e36417_537x191.png)
Maven的坐标元素包括groupId、artifactId、version。只要我们提供正确的坐标元素,Maven就能找到对应的构件。
![](https://box.kancloud.cn/e7bd98e6c4b96ad936c7cdf8249b53aa_540x155.png)
> 在自己开发项目的时候,也是要给我们的项目定义坐标的,这是强制性要求,只有这样,其他项目才能引用该项目的构件。
## 仓库
仓库指的是在某个位置统一存储所有maven项目共享构件。
![](https://box.kancloud.cn/d772d96cb2b95c31e67b6d054df1c0ee_539x279.png)
首先去你的本地仓库查找,没有的话再去远程仓库下载。如果没有配置远程仓库,会默认从中央仓库地址(https://search.maven.org)下载构件,该中央仓库包含了世界上大部分流行的开源项目构件。
![](https://box.kancloud.cn/2285da2b64a745622e29439b250c8650_480x277.png)
### 镜像仓库
由于国外访问速度太慢,国内也有提供一样的功能的仓库,相对速度会更快,可以修改镜像仓库的位置。
![](https://box.kancloud.cn/ec8f4e58b7c28d6f8dd5a7de60548142_783x165.png)
找到conf目录下的setting.xml文件,打开
![](https://box.kancloud.cn/06de980a7c676d88f62298a57cfd731e_986x304.png)
推荐使用阿里云的,速度较快
```
<mirrors>
…
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
```
### 更改仓库位置
1. 修改本地仓库地址
默认存储在C盘中,为了防止重装系统等操作将本地仓库删除,可以更改仓库位置。
新建repository文件夹,在修改conf下的settings.xml,如下图:
![](https://box.kancloud.cn/4d693f112ce6ba145e6ee4a69b4d69a4_961x206.png)
2. 再将conf下的settings.xml文件复制一份到刚新建repository下(以后更新maven版本就不必修改settings文件)
3. 测试:可以看出,编译项目,项目会被加载到刚刚创建的repository文件夹下
![](https://box.kancloud.cn/ee4223cd46d603db0a33c20df44bd442_890x452.png)
![](https://box.kancloud.cn/f50fa606248767811f41a544004b9d31_724x325.png)