Maven 仓库
在maven的专业术语中,仓库是一个位置(place)
maven仓库是项目中依赖的第三方库,这个位置所在的位置叫做仓库
在maven中,任何一个插件或者项目构建输出,都可以称之为构建
maven仓库有三种类型
- 本地(local)
- 中央(central)
- 远程(remote)
本地仓库
maven的本地仓库,在安装maven后并不会并创建,他是在执行第一次mvn命令的时候才会被创建。
运行maven时候,所需要构建都是从本地获取的,如果说本地没有构建,那么就会尝试从远程调取下载到本地,然后在从本地调用
默认情况下,不管Linux还是 Windows,每个用户在自己的用户目录下都有一个路径名为 .m2/repository/ 的仓库目录。
那么我们要修改默认路径,那么就只能在setting文件中定义另外一个路径
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>仓库的位置</localRepository>
</settings>
当运行maven时,Maven将下载依赖的文件到你的指定的路径中
中央仓库
Maven中央仓库是由maven提供的一些仓库,其中包含了大量常用的库
中央仓库的关键概念
- 这个仓库由maven社区管理
- 不需要配置
- 需要网络才能访问
访问地址http://search.maven.org/#browse
远程仓库
如果在maven中心仓库也找不到maven依赖文件,他会停止构建过程并输出错误的信息到控制台,为了避免这种情况,就构建出来了maven远程仓库
,他是开发人员自己定义的仓库,包含开发人员所需要的仓库
Maven 依赖搜索顺序
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
- 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
- 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行 4,如果找到了则下载到本地仓库中以备将来引用。
- 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
- 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。
maven 阿里云仓库
maven仓库默认在国外,国内使用难免会很慢,那么我们可以更换为阿里云的镜像
那么修改conf文件夹下面的setting文件中的< mirrors>
节点并且添加如下内容:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
如果想使用其它代理仓库,可在 节点中加入对应的仓库使用地址。以使用 spring 代理仓为例:
<repository>
<id>spring</id>
<url>https://maven.aliyun.com/repository/spring</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
在你的 pom.xml 文件 节点中加入你要引用的文件信息:
<dependency>
<groupId>[GROUP_ID]</groupId>
<artifactId>[ARTIFACT_ID]</artifactId>
<version>[VERSION]</version>
</dependency>
执行拉取命令:
mvn install
gradle 配置指南
gradle 是一个构建工具
在 build.gradle 文件中加入以下代码:
allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
mavenLocal()
mavenCentral()
}
}
如果想使用其它代理仓,以使用spring仓为例,代码如下:
allProjects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/spring/'
}
mavenLocal()
mavenCentral()
}
}
加入你要引用的文件信息:
dependencies {
compile '[GROUP_ID]:[ARTIFACT_ID]:[VERSION]'
}
执行以下命令安装:
./gradlew dependencies