您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Maven 仓库

在之前的章节中,我们分别介绍了 Maven 中的工程对象模型(POM)以及 Maven 的依赖管理,但是,这个时候,我们势必会有疑问,当我找到依赖的坐标后,只需要将该坐标放入到我项目的 POM 当中,这个依赖就算是被引入了,那这个依赖是从哪里来的呢?

在本节中,我们就带着这个疑问来学习 Maven 的仓库,了解如何使用 Maven 仓库。

我们先想象一下,如果没有 Maven,我们在开发不同项目的时候,如果需要依赖同 jar 包,那么就需要分别在两个不同项目中将这个 jar 包引入进去,对于程序员来说,这样的做法显然是不合理的,不仅需要我们手动到处复制,而且会多占用我们的磁盘空间。

那这个时候,Maven 仓库就出现了。我们通常把依赖称为构件,每构件都有自己唯一的坐标,基于这种模式,我们就可以把这些构件存放在指定的位置–Maven仓库当中,然后通过其坐标来寻找该构件。

在我们学习或者实际开发过程中,只需要在我们的项目当中声明依赖的坐标,在项目编译的或者打包的过程中,Maven 会从仓库中去寻找该构件,这样就不需要我们在本地存储这个依赖了。

对于 Maven 来说,主要的仓库种类可以分为两种,一种是本地仓库,另一种是远程仓库。而在远程仓库当中呢,又可以分为中央仓库,私服和其他的公共仓库。

在我们声明的 MAVEN_HOME 路径下,找到 conf\settings.xml,其中可以看到 Maven 的本地仓库路径配置:

Maven 中认配置了中央仓库,我们可以在超级 POM 里面找到对应的配置。

有了中央仓库,我们为什么还需要其他的远程仓库呢?

这种时候,我们就可以选择使用起来相对方便的远程仓库来配置,大大提高了我们的开发效率。

国内常用的 Maven 仓库:

阿里云镜像:

阿里巴巴镜像:

repo2 镜像:

我们可以将对应的仓库的镜像配置到 settings.xml 中的 mirrors 节点中即可。如下图所示,我们配置了阿里云的镜像。

私服也是属于远程仓库的一种,相对公共仓库而言属于某个公司或者某个开发团队私有的远程仓库。通常部署在某个局域网内,提供局域网的内部使用。

那私服有什么好处呢?

当我们需要构件的时候,Maven 会先去请求私服,如果发现私服中,没有该构件,那么就会去配置了的远程仓库中寻找,并且缓存到我们的私服中,为后续的下载请求提供服务。

我们知道了 Maven 通过坐标去仓库中寻找对应的构件,那么这个机制的原理是怎么样的呢?

Maven 在寻找需要的依赖的时候,会遵照下面的顺序:

在本节中,我们介绍了什么是 Maven 仓库,主要的仓库以及不同仓库的特点。最后我们还介绍了从 Maven 仓库中的依赖解析机制。


联系我
置顶