Maven01:仓库

       工作之后,一直都在使用maven作为项目管理工具(管理项目依赖库),虽然平时基本的操作都能做,但是在配置依赖缺少jar时,总是得研究半天,

之前限于工作时间紧,解决了也就罢了,也没了解过到底怎么回事,现在项目稍闲,正好又遇到了这个问题,所以就来彻底了解下,遇到缺少jar的情况部分跟我们使用的maven仓库存在一定的关系,简言之,Maven仓库即是我们项目依赖库的集合,下面我们来一起看下。

1 . 仓库简介
  没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理。Maven 使用一个称之为仓库的目录,根据构件的坐标统一存储这些构件的唯一副本,在项目中通过依赖声明,可以方便的引用构件。

2 . 仓库的布局
  构件都有唯一的坐标,Maven 根据坐标管理构件的存储。如以下对 spring-orm-3.2.0 的存储:


       文件路径对应了:groupId/artifactId/version/artifactId-version.packaging

3 . 仓库的分类
  Maven 仓库分为本地仓库和远程仓库,寻找构件时,首先从本地仓库找,找不到则到远程仓库找,再找不到就报错;在远程仓库中找到了,就下载到本地仓库再使用。中央仓库是 Maven 核心自带的远程仓库,默认地址:http://repo1.maven.org/maven2。除了中央仓库,还有其它很多公共的远程仓库。私服是架设在本机或局域网中的一种特殊的远程仓库,通过私服可以方便的管理其它所有的外部远程仓库。

3 . 1 . 本地仓库 

 Maven 本地仓库默认地址为:${user.home}/.m2/repository。

  通过修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,针对当前用户(推荐))配置文件可以更改本地仓库的位置。

3 . 2 . 中央仓库
  安装完 Maven ,本地仓库几乎是空的,这时需要从远程仓库下载所需构件。Maven 配置了一个默认的远程仓库,即中央仓库,找到maven安装目录: %MAVEN_HOME%/lib/maven-model-builder-3.2.1.jar,打开 org/apache/maven/model/pom-4.0.0.xml 超级POM:

3 . 3 . 在项目中添加其他远程仓库
  当中央仓库找不到所需的构件时,我们可以配置 pom.xml ,添加其它的远程仓库。

 

<repositories>
    <repository>
        <id>Sonatype</id>
        <name>Sonatype Repository</name>
        <url>http://repository.sonatype.org/content/groups/public/</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

     其中 id 必须唯一,若不唯一,如设置为 central 将覆盖中央仓库的配置。
3 . 4 . 镜像仓库
  镜像仓库可以理解为仓库的副本,从仓库中可以找到的构件,从镜像仓库中也可以找到。比如针对中央仓库 http://repo1.maven.org/maven2 ,在中国有它的镜像仓库,这样我们直接访问镜像仓库,更快更稳定。

      镜像仓库可以在maven的配置文件中配置:%MAVEN_HOME%/conf目录下的settings.xml

 

<settings>
    ...
    <mirrors>
        <mirror>
            <id>maven.net.cn</id>
            <name>central mirror in china</name>
            <url>http://maven.net.cn/content/groups/public</url>
            <mirrorOf>central</mirrorOf>    <!--表明为central中央仓库配置镜像仓库-->
        </mirror>
    </mirrors>
    ...
</settings>

  其中,<mirrorOf> 指明了为哪个仓库配置镜像,可以使用通配符如:<mirrorOf>*</mirrorOf>,或者 <mirrorOf>repo1,repo2</mirrorOf> 等进行匹配。一旦配置了镜像,所有针对原仓库的访问将转到镜像仓库的访问,原仓库将不再能直接访问,即使镜像仓库不稳定或停用。在搭建私服的时候,我们通常为所有仓库设置镜像为私服地址,通过私服对所有仓库进行统一管理。

以下是四个常用的maven仓库镜像,如果出现自身配置的仓库无法下载构件的情况,可以在settings.xml中配置以下镜像地址试试:

1、阿里云的镜像站(首推,新站,速度暴快)顺便给阿里云栖开发者社区做个广告,点这里来云栖社区看看吧。

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

 2、剩下就是国外的了,maven官方运维的2号仓库

<mirror>
    <id>repo2</id>
    <name>Mirror from Maven Repo2</name>
    <url>http://repo2.maven.org/maven2/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

3、 maven在UK架设的仓库(有时候速度会比官方2号仓库快)

<mirror>
    <id>ui</id>
    <name>Mirror from UK</name>
    <url>http://uk.maven.org/maven2/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

4、 JBoss的仓库

<mirror>
    <id>jboss-public-repository-group</id>
    <mirrorOf>central</mirrorOf>
    <name>JBoss Public Repository Group</name>
    <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>



3 . 5 . 常用的仓库搜索地址

 

   参考:https://www.cnblogs.com/luotaoyeah/p/3785044.html

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值