maven 生命周期及插件(六)
来源:互联网 发布:盗梦空间红辣椒知乎 编辑:程序博客网 时间:2024/05/21 07:47
1.1. 生命周期和插件
生命周期和插件详解--http://www.cnblogs.com/tenghoo/p/maven_life_cycle.html
一、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以及之前所有阶段
四、m2eclipse和生命周期
1、m2eclipse中预置的mvn命令
右键maven项目或pom.xml文件>Run As 可以看到预置的mvn命令
2、自定义mvn命令
单击 上图中的maven Build...,自定义命令 mvn clean install:
定义完成后,点击maven Build,可以看到定义好的命令:
最重要生命周期就是default
1.2. 插件
插件在哪?
Clean 生命周期:涉及clean插件 (maven-clean-plugin)
Default生命周期: compile(maven-compile-plugin)、test(maven-surefire-plugin)、package(maven-war-plugin、maven-jar-plugin)、install(maven-install-plugin)
有效pom.xml中的
默认插件
测试乱码解决
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
</plugins>
</build>
tomcat:run 使用 org.codehaus.mojo.tomcat-maven-plugin 1.1版本 (内置)
插件在1.1 版本使用 tomcat6 ,后来修改groupId : org.apache.tomcat.maven插件升级(分为两个插件tomcat6、tomcat7)
<!-- 默认内置插件,无需配置就可使用-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<port>9001</port>
</configuration>
</plugin>
<!-- 必须要配置后, 才能使用-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>9002</port>
</configuration>
</plugin>
默认: tomcat:run
Tomcat6插件: tomcat6:run
Tomcat7插件: tomcat7:run
- maven 生命周期及插件(六)
- Maven:生命周期及插件
- maven学习笔记(六)生命周期与插件
- maven(5)生命周期及插件
- Maven学习笔记(六):生命周期与插件
- maven-Maven的生命周期及插件
- Maven详解(六)------ 生命周期
- 深入理解maven及应用(一):生命周期和插件
- 深入理解maven及应用(一):生命周期和插件
- Maven系列学习(5)-生命周期及插件
- Maven学习总结系列六:生命周期和插件
- Maven--生命周期和插件(四)
- maven的生命周期和插件(九)
- Maven的生命周期和插件(五)
- Maven--生命周期和插件(四)
- Maven生命周期和插件(三)
- Maven学习(四)-- 生命周期和插件
- Maven实践(八)---插件的生命周期
- javascript笔记--(第十五章)面向对象与原型
- UML学习笔记(时序图)
- mac系统修改文稿文件种类为 unix excutable
- SylixOS电源管理概述以及接口介绍
- PHP中的自定义常量与类常量
- maven 生命周期及插件(六)
- 【蓝桥杯】小朋友排队
- swift3.0 借鉴之地
- P1049 装箱问题
- java并发编程学习笔记(一)
- CSS:7个你可能不认识的单位
- 设计模式(Design Patterns)——可复用面向对象软件的基础
- 堆排序—大根堆,小根堆
- 内容的显示或隐藏、变换图片、检测当前内容的隐藏或显示状态