Maven 基础
Maven高级编程
Maven是Apache公司的一个开源项目,是项目的构建工具。用来依赖(dependencies)管理。
1.为什么要用Maven?有什么好处?
1.1管理我们的Jar 包、
1.1.1、增加第三方jar包(自动构建)
1.1.2、Jar包之间的依赖关系(如果有依赖关系,会级联出来)
2.1 Maven的概念
** Maven是一个基于Java平台的自动化构建工具,Maven可以把我们项目变为一个产品(可发布项目)。**
清理:==去掉编译好的class文件
编译:java原程序—》class文件
测试:针对于项目中的关键点进行测试,测试组写测试代码去测试开发代码。
报告:将测试的结果 进行显示
打包:将项目中包含的多个文件 压缩成一个文件 用于安装
安装:将打成的包 放到 本地仓库
部署:将打成的包 放到 服务器准备运行
2.1 自动化构建工具
Maven可以将项目—》加工成产品(可以真实发布的产品!WAR文件)
编译—》打包—》部署—》测试(环境)—》生产(环境)
2.2 总结
Maven项目构建项目需要的JAR包,先在本地仓库下载;如果本地库不存在,则在中央仓库(私有服务器)镜像下载。4.1 编译
语法:【mvn compile】
4.
4.2 测试
语法:【mvn test】
4.3 打包
语法:【mvn package】
Java项目—》Jar包;
Web项目—》War包;
4.4 安装
语法:【mvn install】
将开发的模块,加入到本地仓库,工其他模块的使用。4.4 清除
语法:【mvn clean】
5.5Maven的生命周期(应付面试)
一、Maven的生命周期
Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。
二、三套生命周期
Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
1、clean生命周期:清理项目,包含三个phase。
1)pre-clean:执行清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行清理后需要完成的工作
2、default生命周期:构建项目,重要的phase如下。
1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
3、site生命周期:建立和发布项目站点,phase如下
1)pre-site:生成项目站点之前需要完成的工作
2)site:生成项目站点文档
3)post-site:生成项目站点之后需要完成的工作
4)site-deploy:将项目站点发布到服务器
三、命令行和生命周期
各个生命周期相互独立,一个生命周期的阶段前后依赖。
举例如下:
1、mvn clean
调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段
2、mvn test
调用default生命周期的test阶段,实际执行test以及之前所有阶段
3、mvn clean install
调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段