• Maven仓库介绍


    1、仓库

    仓库:用于存储资源,主要是各种jar包

    关于仓库,我们前面讲到了有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库

    中央仓库:maven团队自身维护的仓库,属于开源的

    私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源

    本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源

    私服的作用:

    (1)保存具有版权的资源,包含购买或自主研发的jar

    (2)一定范围内共享资源,能做到仅对内不对外开放

    2、坐标

    我们说maven的仓库里存储了各种各样的资源(jar包),那这些资源我们如何找到它们呢?我们需要知道它们具体的一个位置才能知道如何找到它们,这个就叫坐标

    坐标:maven中的坐标用于描述仓库中资源的位置

    Central Repository:

    那maven中的坐标是如何构成的呢?

    maven坐标的主要组成如下:

    groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)

    artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms

    version:定义当前资源的版本号

    packaging:定义资源的打包方式,取值一般有如下三种

    (1)jar:该资源打成jar包,默认是jar

    (2)war:该资源打成war包

    (3)pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构

    如果要查询maven某一个资源的坐标,我们通常可以去maven的仓库进行查询,

    https://mvnrepository.com/,在该网站中可直接搜索想要的资源,然后就能得到该资源的坐标

    输入资源名称进行检索

    点击你想要的资源进行查看

    选择版本查看坐标

    maven坐标的作用:

    使用唯一标识,唯一性定义资源位置,通过该标识可以将资源的识别与下载工作交由机器完成。

    3、仓库配置

    开发者要在自己电脑上做开发,首先要做的就是配置本地仓库

    默认情况下maven本地仓库的位置在哪儿呢?

    我们可以选择在全局进行配置,在maven的配置文件conf/settings.xml中可以找到它的说明

      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    也就是在系统盘当前用户目录下的.m2/repository,比如我当前的系统用户是zs,则默认的本地仓库仓库位置在C:Userszs.m2 epository

    因为我们平时开发项目所有的资源会比较多,而且各种资源还有好多的版本,资源与资源之间还有相互依赖的这种情况,因此本地仓库保存的内容会非常的多,它的体积会很大,如果放在C盘下不太合适,因此我们可以自己来指定一个位置作为本地仓库的位置,这个指定同样是需要来修改maven的配置文件conf/settings.xml

    在我们前面查看这个文件的时候大家会发现它提供了一个标签/path/to/local/repo

    这个标签中配置的值就是我们本地仓库的位置,但是这个标签是在注释中的,也就是说目前不起作用,因此我们要将该标签挪出注释,并修改标签内的值,指定一个新的位置作为本地仓库的位置,例如

      
    D:maven-repository
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如果是局部用户配置:在仓库的同级目录也可以包含一个settings.xml配置文件,在里面也可以进行指定

    注意:局部用户配置优先与全局配置(遇见相同配置项的时候)

    全局setting与用户setting的区别

    • 全局setting定义了当前计算机中maven的公共配置
    • 用户setting定义了当前用户的配置

    另外大家需要注意:maven默认连接的远程仓库位置是:(即中央仓库)

    此站点并不在国内,因此有时候下载速度非常慢,因此我们可以配置一个国内站点镜像,可用于加速下载资源

    我们在conf/settings.xml配置文件中找到标签,在这组标签下添加镜像的配置,如下

    
        nexus-aliyun
        central
        Nexus aliyun
        http://maven.aliyun.com/nexus/content/groups/public
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    java计算机毕业设计ssm中小学信息技术课程考试系统
    java python基于Vue宠物交流网站管理系统
    【GitHub 个人主页】适应于初学者的自定义个人主页设置
    文件上传 [GXYCTF2019]BabyUpload1
    Java面试题总结(一)
    百度、四维图新、高德争“鲜”恐后
    在有限 computational budget 下,借助 low-fidelity 模型提高精度
    基于Matlab的车牌识别算法,Matlab实现
    流程变量的设置和获取
    #WEB前端(JS基础语法)
  • 原文地址:https://blog.csdn.net/Bejpse/article/details/126435261