3.Maven仓库

1.概述

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

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

<localRepository>/Java_Develop_Environment/Maven/repository</localRepository>

2.仓库布局

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

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

com/strivelearn/hello/1.0.0

3.仓库分类

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

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

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

<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

4.本地仓库

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

mvn clean install

5.远程仓库

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

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

<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun repository</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </repository>
</repositories>

6.远程仓库的认证

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

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

<servers>
    <server>
    <id>deploymentRepo</id>
    <username>repouser</username>
    <password>repopwd</password></server>
</servers>

7.部署到远程仓库

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

<distributionManagement>
    <!--发布版本构件的仓库-->
    <repository>
        <id>xxx</id>
        <name>xxx</name>
        <url>xxxx</url>
    </repository>

    <!--快照版本的仓库-->
    <snapshotRepository>
        <id>xxx</id>
        <name>xxx</name>
        <url>xxxx</url>
    </snapshotRepository>
</distributionManagement>

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

mvn clean deploy

8.镜像

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

<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

9.仓库搜索服务

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

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 5,124评论 0 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 132,334评论 18 139
  • 目前在看nexus私服章节的知识时需要用到仓库与镜像的知识,正好通过简书把仓库和镜像章节的笔记整理一下 仓库 ma...
    小炼君阅读 1,035评论 0 49
  • 【解剖列车】笔记的整理来自李哲老师。老师更多的是解读本书,我则是还原老师的课堂口述。 ☞本节看点——快速查看关键点...
    舒涵vivian阅读 3,638评论 0 13
  • 高通量测序技术的应用-DNA-seq&RNA-seq_图文_百度文库 https://wenku.baidu.co...
    Amisuer阅读 7,812评论 0 4