Maven教程-Maven仓库

Maven仓库是用于统一存储和管理构件的系统,分为本地仓库和远程仓库。本地仓库默认位于用户目录下,Maven首先查找本地构件,若未找到则从远程仓库如中央仓库或私服下载。构件可通过mvn clean install命令安装到本地仓库。
摘要由CSDN通过智能技术生成

坐标和依赖是任何一个构件在Maven世界中的逻辑表示方式,而构件的物理表示方式是文件,Maven通过仓库来统一管理这些文件。本篇将详细介绍Maven仓库,在了解Maven如何使用仓库之后,将能够更高效的使用Maven。

何为Maven仓库

在Maven世界中,任何一个依赖、插件或者项目构件的输出,都可以称为构件。例如依赖log4j-1.2.15.jar是一个构件,maven-compile-plugin-3.1.jar是一个构件。
在一台工作站上,可能会有几十个Maven项目,所有项目都使用maven-compile-plugin,大部分项目使用到了log4j,还有部分项目使用了Spring Framework。在每个有需要的项目中都放置一份重复的log4j或者Spring显然不是最好的解决方案,这样做不仅造成了磁盘空间的浪费,而且也难以统一管理,文件的复制等操作也会降低构件的速度。

得益于坐标机制,任何Maven项目使用任何一个构件的方式都是完全相同的。在此基础之上,Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库。实际的Maven项目将不再各自存储其依赖文件,它们只需要声明这些依赖的坐标,在需要的时候(例如,编译项目的时候需要将依赖加入到classpath中),Maven会自动根据坐标找到仓库中的构件,并使用它们。

为了实现重用,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其他项目使用。

仓库的分类

对于Maven来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,Maven就会报错。

在这个最基本分类的基础上,还有必要介绍一些特殊的远程仓库。中央仓库是Maven核心自带的远程仓库,它包含了绝大部分开源的构件。在默认配置下,当本地仓库没有Maven需要的构件时,它就会尝试从中央仓库下载。

私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。

本地仓库

一般来说,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录,当Maven在执行编译或测试时,如果需要使用依赖文件,它总是基于坐标使用本地仓库中的依赖文件。

默认情况下,不过是在Windows还是Linux上,每个用户在自己的用户目录下都有一个路径名为 .m2/repository/ 的仓库目录。例如,本人的用户名为Ricky,Windows 机器上环境默认的本地仓库路径为:C:\Users\Ricky.m2\repository。

用户也可以自定义本地仓库路径,编辑$MAVEN_HOME/conf/setting.xml,设置localRepository元素值为你想要的仓库路径即可,例如:

<sett
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值