• 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>
  • 相关阅读:
    【DDR3 控制器设计】(7)DDR3 的用户端口读写模块设计
    YOLOv8优化策略:轻量级Backbone改进 | 高效模型 (Efficient MOdel, EMO),现代倒残差移动模块设计 | ICCV2023
    辉芒微IO单片机FT60F12F-MRB
    Linux命令学习
    JAVA -华为真题-分奖金
    python的搜索引擎系统设计与实现 计算机竞赛
    睿伴科创上线了
    (Mysql高级语句(进阶查询语句+数据库函数+连接查询))
    syslog和syslog watch实现
    ubuntu 18.04 server源码编译安装freeswitch 1.10.7支持音视频通话、收发短信——筑梦之路
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/126334246