0. 前言
maven是一个项目管理工具,更细致的说应该是一个包管理工具,那么其出现的契机是什么呐?
回想以前没有maven的日子。
- 当开发一个项目的时候,有时候需要用到别人已经实现好的jar包,我们需要将这些jar包下载下来添加到项目的lib目录下,并把这个目录添加到classpath中告诉Java执行环境,在哪些目录下可以找到这些jar包;
- 下载的jar包之间可能会存在依赖关系,所以当我们下载a.jar的时候很可能需要再下载b.jar,这种依赖关系是普遍存在的,且很复杂;
- 下载完之后jar包还可能会存在版本问题,所以需要保证下载的版本是正确的。等这些都完成之后,项目才有可能运行。
- 之后我们需要将项目上传到GitHub上,这些lib也需要上传上去,导致项目比较大,别人下载使用也很不方便。
- 基于这样的前提,才出现了maven,有了maven我们不需要像以前那样自己去下载包,而是在POM中写好所需要的依赖,其会自动去maven仓库下载包,很方便。
- 下文主要对maven的主要组成部分以及基本的使用操作进行详细说明。
1. maven仓库的种类
maven仓库其实就是存放我们需要的jar包的地方,maven找jar包的过程是这样的,先在本地仓库找,找不到去私服找,然后才去中央仓库找(这种设计哲学与DNS等非常相似),通过这样的方式来节省时间。此外从中央仓库找到的包会在私服和本地都放一份,从私服找到的包也在本地放置一份,因为本地加载包的开销要比其他两个小。
当安