【Maven从入门到实战教程】第三章 Maven仓库和坐标 蔚落 2024-04-28 13:17 74阅读 0赞 ## 一、Maven仓库概述 ## Maven仓库分类: 本地仓库:本地主机上的仓库。 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。 Maven的工作需要从仓库下载一些jar包,如下图所示,本地的Maven项目都会通过Maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存放到本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。 **下图描述了maven中仓库的类型:** ![watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA5oiR5piv5rOi5ZOp5Liq5rOi_size_16_color_FFFFFF_t_70_g_se_x_16][] ## 二、中央仓库 ## 由于最原始的本地仓库是空的,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> [watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA5oiR5piv5rOi5ZOp5Liq5rOi_size_16_color_FFFFFF_t_70_g_se_x_16]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/0504757b890c40218ac9dc1d704d76fd.png
相关 【Maven从入门到实战教程】第八章 Maven项目拆分、继承、聚合,配套Maven综合案例 一、Maven项目拆分、继承、聚合的深入理解二、Maven综合案例 末蓝、/ 2024年04月28日 13:18/ 0 赞/ 79 阅读
相关 【Maven从入门到实战教程】第四章 在Eclipse和IDEA中使用Maven 一、在eclipse中使用Maven二、在IDEA中使用Maven 落日映苍穹つ/ 2024年04月28日 13:17/ 0 赞/ 84 阅读
相关 【Maven从入门到实战教程】第一章 Maven概念、安装和配置 一、Maven概念:简介、Maven概念模型二、Maven安装与配置:安装、配置、全局settings与用户settings、配置阿里云镜像 我就是我/ 2024年04月28日 13:17/ 0 赞/ 65 阅读
相关 Maven仓库(maven第三章) 目录 一 .前言 二.本地仓库 2.1这配置环境变量 2.2配置完成后验证 三.中央仓库 四.中央仓库 五.Maven 依赖搜索顺序 六.Maven 阿里云( 清疚/ 2023年10月05日 23:30/ 0 赞/ 17 阅读
还没有评论,来说两句吧...