1.什么是maven:
maven是一个项目构建和管理的工具,提供了帮助管理构建,文档,报告,依赖,发布,分发的方法,方便编译代码,进行依赖管理,是Apache下开源的,纯java开发的一个项目管理工具,使用Maven对项目进行构建,依赖管理。
2.项目的构建:
是一个从编写代码,编译,测试,运行,打包,部署,运行的过程
3.使用maven的好处:
(1).在于可以将项目过程规范化,自动化,高效化以及强大的可扩展性,
(2).利用自身及其插件还可以获得代码检查报告,单元测试覆盖率,实现持续集成
(3).在与传统项目的构建有所优化:
首先:传统项目是在eclipse中创建web项目,而maven是在创建maven项目,
其次:传统项目在工程中编写源代码和配置文件,对源代码进行编译,没有进行统一管理,就容易造成版本冲突,并且它不容易被找到,工程也会导致过大,而maven不需要手动添加jar到项目中,开发人员只需要维护pom.xml配置文件(pom,xml版本统一)维护jar的坐标,还会自动从仓库中下载jar,不会出现冲突问题,使用的jar包仓库都有,使用方便。
4.maven工作流程:
maven的工作流程:本地仓库->私服->中央仓库->其他远程仓库,上一个没有,就去下一个寻找,私服和中央是仓库都需要联网
5.maven生命周期:
有三个内置的生命周期:默认(default),清洁(clean)和站点(site)。在默认(default)的生命周期处理你的项目部署,将清洁(clean)的生命周期处理项目的清理,而网站(site)的生命周期处理你的项目站点文档的创建。
(1) 默认(default)的生命周期包括以下阶段:
验证(validate) - 验证项目是否正确,所有必要的信息可用
编译(compile) - 编译项目的源代码
测试(test) - 使用合适的单元测试框架测试编译的源代码。这些测试不应该 要求代码被打包或部署
打包(package) - 采用编译的代码,并以其可分配格式(如JAR)进行打包。
验证(verify) - 对集成测试的结果执行任何检查,以确保满足质量标准
安装(install) - 将软件包安装到本地存储库中,用作本地其他项目的依赖项
部署(deploy) - 在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享。
Maven将首先验证项目,然后尝试编译源代码,运行这些源代码,打包二进制文件(例如jar),运行集成测试软件包,验证集成测试,将验证的软件包安装到本地存储库,然后将安装的软件包部署到远程存储库。
换句话说,在生命周期里面阶段是连续的,在不出错的前提下,比如执行打包(package)时就一定是执行了测试(test)之后再执行。
(2)清洁(clean)生命周期
预清洁(pre-clean) 执行实际项目清理之前所需的流程
清洁(clean) 删除以前构建生成的所有文件
后清洁(post-clean) 执行完成项目清理所需的流程
(3.)站点(site)生命周期:
预网站(pre-site) 在实际的项目现场生成之前执行所需的进程
网站(site) 生成项目的站点文档
后网站(post-site) 执行完成站点生成所需的进程,并准备站点部署
网站部署(site-deploy) 将生成的站点文档部署到指定的Web服务器
6.maven作用域:
1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
默认的依赖范围是compile
5.system:在编译、测试时有效,但是在运行时无效