• Maven基础概念及配置


    目录

    仓库:

    仓库分类:

    私服的作用:

    坐标

    什么是坐标

    Maven坐标主要组成

    Maven坐标的使用

    仓库配置


    • 仓库:

    • 用于存储资源,包含各种jar包
    • 仓库分类:

    • 本地仓库:
    • 自己电脑上存储资源的仓库,连接远程仓库获取资源
    • 远程仓库:
    • 非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:
      • Maven团队维护,存储所有资源的仓库
      • 私服:
      • 部门/公司范围内存储资源的仓库,从中央仓库获取资源
    • 私服的作用:

    • 1.保存具有版权的资源,包含购买或自主研发的jar
      • 中央仓库中的jar都是开源的,不能存储具有版权的资源
    • 2.一定范围内共享资源,仅对内部开放,不对外共享
    • 3.节省自己的外网带宽
      • 大量的对于外部仓库的重复请求会消耗很大的带宽
      • 利用私服代理外部仓库之后,对外的重复构件下载便得以消除,即降低外网带宽的压力
    • 4.加速Maven构建
      • 不停的连接请求外部仓库是十分耗时的
      • 但是Maven的一些内部机制(如快照更新检查)要求Maven在执行构建的时候不停的检查远程仓库数据
      • 因此,当项目配置了很多外部远程仓库的时候,构建的速度会被大大降低
      • 使用私服可以很好的解决这一问题
      • 当Maven只需要检查局域网内私服的数据时,构建的速度便能得到很大程度的提高
    • 5.提高稳定性,增强控制
      • Maven构建高度依赖远程仓库,因此当Internet不稳定的时候,Maven构建也会变得不稳定,甚至无法构建
      • 使用私服后,即使暂时没有Internet连接,由于私服中已经缓存了大量构件,Maven也仍然可以正常运行
      • 此外,一些私服软件,如Nexus还提供了很多额外的功能,如权限管理,RELEASE/SNAPSHOT区分等,管理员可以对仓库进行一些更高级的控制
    • 6.降低中央仓库的负荷
      • 运行并维护一个中央仓库不是一件容易的事情,服务数百万的请求,存储数T的数据,需要相当大的财力
      • 使用私服可以避免很多对中央仓库的重复下载,想象一下,一个有数百位开发人员的公司,在不适用私服的情况下,一个构件往往会被下载数百次;
      • 建立私服之后,这几百次下载就只会发生在内网范围内,私服对于中央仓库只有一次下载
    • 坐标

    • 什么是坐标

    • Maven中的坐标用于描述仓库中资源的位置
    • Maven坐标主要组成

    • groupId:
    • 定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
    • artifactId:
    • 定义当前Maven项目名称(通常是模块名称,例如CRM,SMS)
    • version:
    • 定义当前项目版本号
    • Maven坐标的使用

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

    • 在非系统盘下创建maven目录
    • 然后在这里面创建一个repository(仓库)目录
    • 然后去maven的安装目录下的conf文件夹下
    • 把里面的settings.xml粘到之前创建好了的maven目录下
    • 但maven默认本地仓库位置在C盘用户名的.m2目录下
    • 我们肯定不配系统盘里
    • 所以把下面localRepository标签复制下
    • 移到下面更改内容为自己所需要配的目录
    • 注意:安装目录那块也要改,保持一致
    • 而中央仓库站点不在中国,下载速度会非常慢
    • 所以需要镜像仓库
    • 同样也要保持一致
      1. <mirror>
      2. <id>alimavenid>
      3. <mirrorOf>centralmirrorOf>
      4. <name>aliyun mavenname>
      5. <url>http://maven.aliyun.com/nexus/content/repositories/central/url>
      6. mirror>
  • 相关阅读:
    为什么HashMap的键值可以为null,而ConcurrentHashMap不行?
    Springboot楼盘在线销售平台7txdy计算机毕业设计-课程设计-期末作业-毕设程序代做
    LeetCode-813-最大平均值和的分组
    带团队后的日常思考(十四)
    Spring Boot如何实现OAuth2授权?
    关于Electron框架应用的安全测试
    动态行、列,并且合并
    TikTok的伦理挑战:虚拟世界与现实世界的交汇
    java计算机毕业设计无人驾驶汽车管理系统源程序+mysql+系统+lw文档+远程调试
    Java 并发编程基础 --Synchronized
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/126334246