什么是Maven?
Maven是一个项目管理工具。基于项目对象模型POM(Project Object Model)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工作软件。
总结:基于POM的一个项目管理工具
为什么引入Maven?
当我们创建一个项目时,必须使用jar包,那么我们去搜索时需要考虑的问题有:
1,版本是否适合当前项目,可能需要升级版本重新拷贝。
2,jar 包是非独立存在的,一般有的 jar 也会依赖到别的 jar,例如,a.jar 依赖 b.jar,b.jar 又依赖 c.jar ... 如此,我们不仅要找到我们所需要的 a.jar,还需要找到 b.jar,c.jar ...
3,jar 包之间的版本冲突问题。例如,项目中用到了 a.jar,a.jar 依赖于 b.jar 的1.0版本,接着我们需要拷贝 c.jar,但是 c.jar 又依赖于 b.jar 的2.0版本,我们又把 c.jar 和 b.jar 的2.0版本引进来了,此时发现 b.jar 有2个版本,发生冲突了,启动的时候就会报错。
4,一般做大项目时,会将一个大的项目分成 n 个小项目,每个小项目由不同开发负责,这些小项目的结构都是类似的,然后每个项目都需要把这些jar拷贝一份到自己的项目目录中,只是 jar包就拷贝了n份。
但是当使用了Maven时:
1,Maven可以通过pom.xml文件可以快速实现依赖的配置,通过在pom文件中添加依赖的基本信息,不用我们去手动搜索和下载依赖,项目可以自己从远程仓库中完成。
2,当遇到版本冲突或版本不适配时,Maven可以直接在pom.xml文件中修改版本号即可修改对应的版本。
3,Maven除了管理依赖外,还可以通过一个命令可以完成编译,测试,运行,打包,安装,部署等一系列工作。
Maven的作用
通过了解为什么引入Maven后,我们也大概了解了Maven的作用:
1,项目构建:提供标准的跨平台的自动化项目构建方式。
2,管理依赖:方便快捷的管理项目依赖的资源 (jar包),避免资源间的版本冲突问题。
3,统一开发结构:提供标准的,统一的项目结构。
Maven基本概念
仓库
用于存储资源,包含各类 jar 包。
分类:
本地仓库:本机用来存放资源的仓库,当开发者使用Maven构建项目时,Maven会自动将下载的依赖项存储在本地仓库中,方便后续项目的引用。本地仓库中获取依赖项的速度比远程仓库快,因为不用下载。
私服仓库:可用来存储企业内部的依赖项和软件包,一般使用私服仓库需要身份验证。
中央仓库:Maven维护的默认远程仓库,包含了大量的开源依赖项,开发者在项目中添加依赖项时,Maven会首先从中央仓库下载所需的依赖项。
其中,私服仓库和中央仓库都是远程仓库。
中央仓库的地址是http://repo.maven.apache.org/maven2。
仓库配置:
更改路径的原因:
默认路径下,我们的本地仓库是在C盘用户目录下。
但是随着创建项目越来越多,本地仓库下载的资源也会越来越多,长此以往,C盘容量可能不够用,而且C盘中又有很多系统文件,所以为了不影响电脑运行,我们可以将本地仓库转移到其他磁盘。
坐标
用于描述仓库中资源的位置。
坐标的组成:
1. groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
2. artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
3. version:定义当前项目版本号
图示
明黄色方框内是Maven的核心。