【Maven从入门到实战教程】第三章 Maven仓库和坐标

一、Maven仓库概述

    Maven仓库分类:
        本地仓库:本地主机上的仓库。
        远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。

    Maven的工作需要从仓库下载一些jar包,如下图所示,本地的Maven项目都会通过Maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存放到本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

下图描述了maven中仓库的类型:

二、中央仓库

    由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令时下载到需要的构建。

    中央仓库是Maven默认的远程仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

    中央仓库地址是:https://repo.maven.apache.org/maven2。

    Maven的安装文件默认自带了中央仓库的配置,在MAVEN_HOME/lib/maven-model-builder.jar中可找到,org\apache\maven\model\pom-4.0.0.xml,其中配置有中央仓库地址。

<repositories>
    <repository>
        <id>central</id>
        <name>Central Repository</name>
        <url>https://repo.maven.apache.org/maven2</url>
        <layout>default</layout>
        <snapshots>
        <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

三、私有仓库

    一种特殊的远程仓库,它是架设在局域网内的仓库,主要是为了团队协作开发,可以理解为自己公司的仓库,也叫私服。

    配置阿里云镜像,阿里云镜像其实就是阿里的私有仓库,只是公开给大家使用。

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

使用私服的好处:

    节省自己的外网带宽:建立私服可以减少组织自己的开支,大量的对于外部远程仓库的重复请求会消耗很大的带宽,利用私服代理外部仓库后,对外的重复构件下载得以消除,即降低外网带宽的压力。

    加速Maven的构建:不停的请求外部仓库无疑是比较耗时的,但Maven的一些内部机制(如快照检测)要求Maven在执行构建的时候不停地检查远程仓库的数据。因此当配置了很多远程仓库时,构建的速度会被大大降低。使用私服可以很好地解决这个问题。

    部署第三方构件:当某个构件无法从外部远程仓库下载怎么办?这样的例子很多,如组织内部的生成的私有的构件肯定无法从外部仓库获取,Oracle的JDBC驱动由于版权原因不能发布到外网的中心仓库。建立私服之后便可以将这些构件部署到本地私服中,供内部的Maven项目使用。

    提高稳定性,增强控制:Maven构建搞定依赖于远程仓库,因此,当Internet不稳定的时候,Maven构建也会变的不稳定,甚至无法构建。
使用私服后即使暂时没有Internet连接Maven也可以正常运行,因为私服中缓存了大量的构件。此外一些私服软件(如:Nexus)还提供了很多额外的功能,如权限管理,RELEASE/SNAPSHOT区分等,管理员可以对仓库进行一些更高级的控制。

    降低中央仓库的负荷:数百万的请求,存储数T的数据,需要相相当大的财力。使用私服可以避免很多对中央仓库的重复请求。

四、本地仓库

    当Maven执行编译或测试时,如果需要使用到依赖文件,它总是基于坐标使用本地仓库的依赖文件。默认情况下,不管Linux还是Windows,每个用户在自己的用户目录下都有一个路径名为.m2/respository/的仓库目录。

    从中央仓库或私有仓库中下载jar包和Maven信息或者自己打jar包的依赖仓库。

    默认位置:~/.m2/repository

    修改本地仓库位置:在MAVE_HOME/conf/settings.xml文件中配置本地仓库位置。

<localRepository>D:\maven\repository</localRepository>

五、Maven坐标

    Maven仓库中拥有大量的依赖jar包,需要用来唯一标识来构建的统一规范。拥有统一规范,就可以从Maven仓库中准确的找到所需依赖。

<dependency>
    <!-- Maven依赖的坐标GAV -->
    <groupId></groupId>
    <artifactId></artifactId>
    <version></version>
</dependency>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是波哩个波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值