3.Maven仓库

1.概述

    不同的项目依赖的jar有可能一样。这时候为了避免jar重复下载的问题,就产生仓库的概念。这个仓库只保证一个jar,以便供其他项目使用。

在Maven的conf目录的settings.xml自定义仓库地址

/Java_Develop_Environment/Maven/repository

2.仓库布局

    Maven仓库的布局是根据其唯一的坐标进行对应的。

例如下面的坐标在硬盘中的文件路径地址

com/strivelearn/hello/1.0.0

3.仓库分类

    Maven仓库分为两类:1、本地仓库 2、远程仓库

    Maven根据坐标寻找构件的时候,首先先查看本地仓库,如果有,则直接使用。如果没有,则从远程仓库获取。

    Maven还有一种特殊的远程仓库:私服。为了节约带宽和时间,则在局域网内架设一个私有的仓库服务器。用其代理所有的外部远程仓库。国内通常使用阿里云的私服。其中在maven中设置如下镜像


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

4.本地仓库

    当我们在编写自己项目的时候,我们在执行下面的命令,则就会把自己项目的jar包安装到本地仓库。

mvn clean install

5.远程仓库

    远程仓库包含:1、中央仓库 2、私服 3、其他公共库。

    我们可以通过设置Maven的setting.xml来确认远程仓库地址,如上面在setting文件设置阿里云镜像。又可以在Maven里定义远程仓库地址。


    
        aliyun
        aliyun repository
        http://maven.aliyun.com/nexus/content/groups/public
    

6.远程仓库的认证

    大部分远程仓库无须认证,但是有时候出于安全方面的考虑,我们需要提供依认证信息才能访问一些远程仓库。

    配置认证信息和配置仓库信息不同,仓库信息可以直接配置在POM文件中,但是认证信息必须配置在settings.xml文件中。这是因为pom文件往往被提交到代码仓库中供所有成员访问。而setting文件一般只放在本机。因此setting.xml文件中配置认证信息比较安全。


    
    deploymentRepo
    repouser
    repopwd

7.部署到远程仓库

    项目开发完毕,都需要部署到仓库中,供其他团队使用。那么我们就需要将自己的项目包部署到远程仓库。


    
    
        xxx
        xxx
        xxxx
    

    
    
        xxx
        xxx
        xxxx
    

    配置正确后,在命令行运行:

mvn clean deploy

8.镜像

    如果仓库X可以提供仓库Y存储的所有内容,那么可以认为X是Y的一个镜像。也就是任意一个可以从仓库Y获取的构件,都能够从它的镜像中获取。


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

9.仓库搜索服务

    再使用Maven进行日常开发的时候,通常需要寻找需要的依赖。这时候可以用仓库搜索服务根据关键字得到Maven坐标。在国内能正常打开网址:http://mvnrepository.com/

你可能感兴趣的:(3.Maven仓库)