一、Maven的作用
(一)、管理jar
1、增加第三方jar。
例如:文件上传(commons-fileupload.jar、commons-io.jar)
2、jar包之间的依赖关系
例如:commons-fileupload.jar自动关联下载所有的依赖的jar包。
总结:
A、还是上面的例子,第一个jar包需要第二个jar包中的内容。依赖着第二个jar包。
B、在maven中,我们需要第一个jar包,只要给出第一个jar包的坐标(mav);第二个jar包maven会自动关联上的。
C、还会解决版本不匹配的问题。(例如:第一个jar包的版本是1.0,需要下载关联的jar也是1.0,而手工的方式极其容器搞错版本,而maven自动关联则不会)
(二)、将项目拆分成若干个模块
将项目拆分成多个独立的子项目,并进行管理。
二、Maven的概念
(一)、概念
Maven是一个基于Java平台的自动化构建工具。
自动化构建工具有很多:Make ---> Ant ---> Maven ---> Gradle
(二)、什么是自动化构建工具?
其实Eclipse就是构建工具,只不过是半自动化的。例如:java中,就是java(编码)---> class(编译)---> 运行。Eclipse就直接编写代码,然后执行。中间的编译是由Eclipse自动完成的。
自动化构建工具Maven:将原材料(java、js、css、html、图片等等)变成一个产品(可发布的项目)
(三)、Maven完成的工作
1、清理:删除编译的结果,为重新编译做准备。
2、编译:将Java编译成Class文件。
3、测试:单元测试 开发人员 测试人员。开发人员开发的代码由测试人员进行测试工作。Maven可以将开发的代码和测试人员的代码合并在一起执行。测试代码自动去测试开发代码。
针对于项目中的关键点进行测试,亦可用项目中的测试代码去测试开发代码。
4、报告:将测试结果进行显示。
5、打包:将项目中包含的多个文件压缩成一个文件用于安装或部署。(java项目 --- jar 、web项目 --- war)
6、安装:
本地仓库、中央仓库、中央仓库镜像的概念:
例:如果有多个项目,那么每个项目都会有各自的jar包,这些jar包会重复。
在使用Maven之后,使用它管理jar,只需要一份jar就可以了。这个仓库就是本机的电脑,这就是本地仓库。
在某一个项目中,有两个jar包,其中一个是commons-lang.jar,另一个假设是abc.jar。commons-lang.jar在本地仓库存在,而abc.jar本地不存在,maven则会到中央仓库(远程仓库:这个仓库是管理所有的jar包,一定会有,如果没有则是真的没有)去寻找。
中央仓库如果就这么一个,那下载的压力会很大。那就在中国、北京、山西等等地方也有一个中央仓库,这些就是中央仓库镜像。中央仓库就是对中央仓库的分流。
通常下载一个jar,现在本地仓库中下载;如果本地仓库中不存在,则再联网到中央仓库(镜像)去下载。
安装:是指将本地项目打成包,放入到本地中央仓库。提供为其他项目使用。
7、部署:将打成的包放到服务器上,准备运行。
--将java、js、jsp等各个文件进行筛选、组装,变成一个可以直接运行的项目。
在以往的Eclipse中,在部署时会生成一个对应的部署项目(在对应的配置的部署目录中)。区别在于:部署项目没有src(java),只有编译后的class文件和jsp文件。一定要遵循tomcat的部署目录结构要求。
Maven的自动构建:编译 --->打包--->部署--->测试,这就是自动构建