先看一下基本概念:
①Maven
翻译为"专家","内行"是跨平台的项目管理工具。
主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
②项目构建
项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。
理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。
③依赖管理
依赖指的是jar包之间的相互依赖,比如我们讲文件上传组件commons-fileupload-1.2.1.jar,不是自拷贝这个一个jar包,而我们说它还依赖commons-io-2.0.jar这个jar包,我们使用fileupload组件的时候,就必须同时复制这个两个jar到lib目录下。依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是"自动下载项目所需要的jar包,统一管理jar包之间的依赖关系"。
使用Maven的好处:
(1)平时我们开发项目时,一般都是一个项目就是一个工程。我们划分模块时,都是使用package来进行划分。但是,当项目很大时,有很多子模块时,即使是package来进行划分,也是让人眼花缭乱。
优点一:项目非常大时,可借助Maven将一个项目拆分成多个工程,最好是一个模块对应一个工程,利于分工协作。而且模块之间还是可以发送消息的。
(2)同一项目的jar包 复制 和 粘贴到WEB-INF/lib下
问题:同样的jar包重复出现在不同的工程中,一方面浪费空间,同时也让工程臃肿
优点二:借助Maven,可将jar包仅仅保存在"仓库"中,有需要该文件时,就引用该文件接口,不需要复制文件过来占用空间。
(3)如果jar包都到各个官网网站下载,会浪费很多时间,而且可能不全。
优点三:借助Maven可以以规范的方式下载jar包,因为所有的知名框架或第三方工具的jar包已经按照统一的规范存放到了Maven的中央仓库中。
( 4)一个jar包依赖的其他jar包可能没导入到项目而导致项目跑不起来。
优点四:Maven会自动将你要加入到项目中的jar包导入,不仅导入,而且还会将该jar包所依赖的jar包都自动导入进来。
Maven要实现这些好处,它具体是怎么做的呢?