Maven 2 生命周期、阶段、插件和 mojo
Maven 通过插件动作完成大多数构建任务。可以把 Maven 引擎认为是插件动作的协调器。
插件中的 Mojo
插件是适应 Maven 的插件框架的软件模块。现在,可以使用 Java、Ant 或 Beanshell 来创建自定义插件。插件中的每个任务称作一个 mojo。有时,插件也被视为一套相关的 mojo。创建自定义的 Maven 2 插件超出了本教程的范围;参见 参考资料,以获取更多信息。
Maven 2 是预先打包好的,以便于下载,它和许多常用插件一起使用。大多数典型开发任务不需要使用额外插件。
在开始编写自己的插件前,您应该先参考一下列出流行 Maven 2 插件的 Web 站点(参见 参考资料),看一下您需要的插件是不是已经有了。图 5 显示了 Maven Plugin Matrix(参见 参考资料),它提供了许多可用插件的兼容性信息:
图 5. Maven Plugin Matrix
回页首
将 mojo 绑定到生命周期各阶段
Maven 引擎在执行构建生命周期中相应的阶段时,执行插件中的 mojo(构建任务)。插件的 mojo 和生命周期中的阶段间的关联叫做绑定 。插件开发人员能够灵活地将一个或多个生命周期阶段和一个插件关联起来。
回页首
默认的生命周期的各阶段
Maven 对构建生命周期的固定理解包含了许多不同的阶段。表 1 简短地描述了各个阶段:
表 1. Maven 2 默认生命周期的各阶段
生命周期阶段
描述
验证 |
确保当前配置和 POM 的内容是有效的。这包含对 pom.xml 文件树的验证。 |
初始化 |
在执行构建生命周期的主任务之前可以进行初始化。 |
生成源码 |
代码生成器可以开始生成在以后阶段中处理或编译的源代码。 |
处理源码 |
提供解析、修改和转换源码。常规源码和生成的源码都可以在这里处理。 |
生成资源 |
可以生成非源码资源。通常包括元数据文件和配置文件。 |
处理资源 |
处理非源码资源。修改、转换和重定位资源都能在这阶段发生。 |
编译 |
编译源码。编译过的类被放到目标目录树中。 |
处理类 |
处理类文件转换和增强步骤。字节码交织器和常用工具常在这一阶段操作。 |
生成测试源码 |
mojo 可以生成要操作的单元测试代码。 |
处理测试源码 |
在编译前对测试源码执行任何必要的处理。在这一阶段,可以修改、转换或复制源代码。 |
生成测试资源 |
允许生成与测试相关的(非源码)资源。 |
处理测试资源 |
可以处理、转换和重新定位与测试相关的资源。 |
测试编译 |
编译单元测试的源码。 |
测试 |
运行编译过的单元测试并累计结果。 |
打包 |
将可执行的二进制文件打包到一个分布式归档文件中,如 JAR 或 WAR。 |
前集成测试 |
准备集成测试。这种情况下的集成测试是指在一个受到一定控制的模拟的真实部署环境中测试代码。这一步能将归档文件部署到一个服务器上执行。 |
集成测试 |
执行真正的集成测试。 |
后集成测试 |
解除集成测试准备。这一步涉及测试环境重置或重新初始化。 |
检验 |
检验可部署归档的有效性和完整性。过了这个阶段,将安装该归档。 |
安装 |
将该归档添加到本地 Maven 目录。这一步让其他可能依赖该归档的模块可以使用它。 |
部署 |
将该归档添加到远程 Maven 目录。这一步让这个工件能为更多的人所用。 |
Maven 从开源社区中汲取了十多年的项目构建管理经验。很难找到一个构建周期不符合表 1 中的生命周期阶段的软件项目。
启动 Maven 2 引擎后,它会按顺序经历表 1 中的各阶段,执行可能与该阶段绑定的 mojo。每个 mojo 则可以使用 Maven 2 丰富的 POM 支持、依赖项管理,也可以访问执行这一专门任务时的构建状态信息。
调用 Maven 2 引擎时,可以将一个生命周期阶段指定为命令行参数。该引擎一直执行到指定的阶段(包括该指定的阶段)。包含的阶段中所有的 mojo 都会被触发。
简短地说,这就是 Maven 2 的操作原理。在下一部分里,您将直接面对操作。对 Maven 操作、它的依赖项管理模型和它的 POM 有了基本的理解,您会发现实践 Maven 2 是一项十分简单的练习
分享到:
相关推荐
Maven3实战笔记04——Maven的生命周期和插件。
maven学习笔记maven学习笔记maven学习笔记
NULL 博文链接:https://576017120.iteye.com/blog/1468915
课程目录: Maven3_01_maven概览 Maven3_02_maven安装的注意事项 ...Maven3_10_生命周期和插件简介 Maven3_11_插件基础 Maven3_12_插件的应用 Maven3_13_测试 Maven3_14_发布web项目 Maven3实战笔记 Maven配置
Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包,,这个pom.xml包我后面会叙述,不过已经学习过maven的 人... maven管理项目生命周期都是基于插件完成的
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期...
Maven生命周期 最新版 最全 最好用
Maven工具的Eclipse插件。 笔者在里面添加了一个README文件,里面是 SOURCEFORGE 网站提供的下载。 SOURCEFORGE 网站的下载,里面有多个版本,需要逐个下载。 笔者只是将网站上下载下来的东西打了个包。
eclipse-maven3-plugin.7z 解压缩到 plugins 目录下 3. 在 links 目录下创建一个maven.link(名字可以随便取,但必须是.link结尾的文件)文件 打开并输入:path= D:/Development/eclipse-JavaEE/eclipse/plugins...
findbugs-maven-plugin, 为了生成基于FindBugs分析器的报告,Maven Mojo插件 Maven 插件 最新快照请从这里下载最新的快照。构建findbugs-maven-plugin需求Java 7是必需的。这将允许分析字节码到 Java 8 findbugs-...
ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)
4、maven命令:重点理解【生命周期和阶段】和【插件和目标】 5、在eclipse中通过m2eclipse插件使用maven 6、配置和使用私服 7、实战maven,把以前一个不是用maven做的模块,移植为maven项目 这是这次学习的重中...
Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。...在本文中,我们详细介绍了 tomcat8-maven-plugin 插件的使用方法和优点。
4、在links中新建maven.txt文件,内容为插件地址,例如:path=D:\eclipse_gzds\myplugins\maven(注意这里斜杠,不是反斜杠) 5、将maven.txt扩展名改为maven.lin 6、在eclipse根目录下找到eclipse.ini并打开,在...
Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、...Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。
此文章包含Maven介绍与安装、Maven在工程开发中的相关配置、Maven如何进行工程测试、Maven的以来冲突调节原则、Maven的聚合开发,以及用一个简单的实操案例对Maven进行练习。 适用于任何学习项目管理与SSM框架中,...
Maven非常强大的重要原因是它有十分完善的生命周期模型 lifecycle 这个生命周期可以从两方面来理解 第一 顾名思义 运行Maven的每个步骤都由它来定义的 这种预定义的默认行为使得我们使用Maven变得简单 相比而言 Ant...
3、项目生命周期管理:Maven提供了一系列的构建阶段(如编译、测试、打包、部署等),你可以在pom.xml中配置这些阶段的行为,Maven会按照定义好的生命周期来执行相应的操作。 4、插件系统:Maven支持插件机制,你...