什么是仓库
顾名思义,仓库就是一个进行集中存储东西的地方,放到这里可以理解为集中管理构件(jar包)的地方.仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等.
为什么要用仓库
在采用传统方式管理的项目中,通常会把第三方依赖jar包放到./lib
或者./web-inf/lib
下,这种情况会产生如下几个弊端:
- 侵占硬盘空间:虽然现在硬盘的容量已经越来越大,但采用传统方式管理,假设100个项目都用到了log4j,那么硬盘上会存在100个log4j.jar,这种重复对于一个正常的程序猿而言显然是不可容忍的.
- 依赖识别困难:时间久了,往往搞不清楚哪个jar是干嘛的.
- 依赖管理困难:需要人工维护第三方jar依赖的其它三方jar.
版本升级困难:如果想升级版本,除了要浪费时间手动去各jar的官网寻找文件下载,还要搞清楚找到的jar和它所依赖的三方jar版本是否兼容.
然而现在有了仓库,可以对jar进行集中管理,通过书写简单的脚本,可以让构建工具主动去下载对应版本的jar包,并且可以解析所需的三方依赖.从而可以让你从无意义的体力劳动中解放出来.并且采用仓库之后,即便有1W个项目都使用到了同一个版本的log4j,那么所有的项目引用的都是同一个log4j而不会出现存在1W份相同文件的情况.
这里可以理解为如果用传统方式,那么是通过相对路径引用的当前项目某个目录下的依赖,而采用构建工具后,会使用绝对路径引用固定目录下的同一份文件.
仓库的分类
仓库大体可以分为:本地仓库、中央仓库、本地目录点击后面的连接可以查看,关于这几种仓库的使用方式
本地仓库
即本地硬