本章节目的

    了解maven的仓库的意义和种类
    掌握配置本地库路径的方法
    了解远程镜像的意义和配置

    1.MAVEN仓库(repository)

    在maven中存在一个仓库的概念,既然是仓库就应该保管了很多”东西”.在我们使maven管理项目,搭建项目的时候,就在使用仓库里的”东西”. 比如:我们创建一个java工程要测试spring框架的代码,这时候我们使用的spring的jar包,就是maven通过仓库交给我们使用的.

    除jar包作为仓库的资源以外,我们自己开发的项目也可以放到仓库,还包括各种插件等,都是在仓库中的 “东西”,我们可以称他们为仓库中的资源.maven的仓库可以分为远程库和本地库两种

    1.1远程库

    所谓的远程库就是你开发maven项目需要连接的一个远程服务器,里面提供了你开发项目需要用到的所有资源供你使用.
    image.png

    上图中的含义就是,你的PC开发时可以连接远程服务器,而远程服务器有很多jar包,我们都可以获取使用.

    • 中央库

    maven社区提供了一个全球范围都可以使用的远程仓库,对于我们普通开发者来说这样的中央库不能进行上传发布项目和修改资源,只能从里面读取你需要的资源使用.
    http://my.repository.com/repo/path
    http://my.repository.com/repo1/path
    http://my.repository.com/repo2/path

    • 远程私服

    对于企业中独有的资源我们可以搭建自己的远程私服,比如nexus就是一种常用作为maven企业私服的远程库软件来使用的.在远程私服中即可以保存自己的资源给自己公司开发使用,也可以作为代理让maven终端访问中央库,一举两得.
    image.png

    总之,有了远程库,我们开发过程需要的各种资源,可以看成现成拥有的,不必在考虑如何到官网,社区提前下载这些内容,咱们可以随用随取非常方便.

    1.2本地库

    对于远程库我们了解了之后,是否每次使用maven来开发项目都需要通过网络获取远程库的资源呢?答案是否定的,因为maven也给我们提供了一个本地库,只要第一次我们连接远程库下载的所有资源,都会保存在本地库,这样方便资源的复用,也不需要占用更多的网络带宽.
    练气.jpg

    • 本地库默认路径

    如果我们没有配置settings.xml文件,使用maven的默认本地库配置,在windows中会将我们maven项目中使用的所有资源下载到C:/用户/用户名/.m2/repository中

    image.png

    • 自定义本地库

    如果我们习惯使用自己的路径来存储远程下载的maven资源,可以通过修改settings.xml的标签来决定我们的maven本地库到底在哪里.

    打开maven根目录中conf下的settings.xml,找到55行,通过标签localRepository的值来定义.

    image.png

    d://ali_repo
    • 将课前资料的本地库解压到对应文件夹 (课前资料—>01-maven—>02本地库)

    image.png

    1.3镜像的配置

    通过上述小节内容,我们了解了仓库的含义和种类,本地库的配置,作为企业开发,必定使用自己的私服作为maven远程库,作为独立开发者,我们想使用私服除非自己搭建,但是这显然是吃力不讨好的事,毕竟独自开发和学习涉及不到团队maven的配合.这样一来我们只需要使用中央库就可以了,但是目前国内的网络连接中央库有可能出现网络访问缓慢的问题,这时就需要我们配置一下maven的镜像(连接地址),可以选择国内的常用一些镜像.

    本质上这些镜像的连接就是远程私服,但是仅仅提供给我们使用的权限是读取资源和使用作为代理访问中央库的作用.这里我们可以配置阿里云的镜像,这也是常用的一个国内镜像

    需要们在settings.xml
    image.png


    nexus-aliyun
    central
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public