插件类型

简介: Maven 插件包括 Build 和 Reporting 两类,如 clean 编译源码,surefire 运行单元测试,jar 和 war 创建包,javadoc 生成文档,antrun 执行 Ant 任务。在 pom.xml 中配置,如示例展示的 maven-antrun-plugin,定义插件、版本、执行阶段(如 clean)和目标(如 run)。执行 `mvn clean`,Maven 显示执行流程,体现插件、阶段和任务绑定。

插件类型

Maven 提供了下面两种类型的插件:

类型 描述
Build plugins 在构建时执行,并在 pom.xml 的 元素中配置。
Reporting plugins 在网站生成过程中执行,并在 pom.xml 的 元素中配置。
下面是一些常用插件的列表:

插件 描述
clean 构建之后清理目标文件。删除目标目录。
compiler 编译 Java 源文件。
surefile 运行 JUnit 单元测试。创建测试报告。
jar 从当前工程中构建 JAR 文件。
war 从当前工程中构建 WAR 文件。
javadoc 为工程生成 Javadoc。
antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。
实例
我们已经在我们的例子中大量使用了 maven-antrun-plugin 来输出数据到控制台上。请查看 Maven - 构建配置文件 章节。让我们用一种更好的方式理解这部分内容,在 C:\MVN\project 目录下创建一个 pom.xml 文件。

4.0.0

com.companyname.projectgroup

project

1.0



org.apache.maven.plugins
maven-antrun-plugin
1.1


id.clean
clean

run



clean phase








接下来,打开命令终端跳转到 pom.xml 所在的目录,并执行下面的 mvn 命令。

mvn clean
Maven 将开始处理并显示 clean 生命周期的 clean 阶段。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO] task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
[echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] ------------------------------------------------------------------
上面的例子展示了以下关键概念:

插件是在 pom.xml 中使用 plugins 元素定义的。
每个插件可以有多个目标。
你可以定义阶段,插件会使用它的 phase 元素开始处理。我们已经使用了 clean 阶段。
你可以通过绑定到插件的目标的方式来配置要执行的任务。我们已经绑定了 echo 任务到 maven-antrun-plugin 的 run 目标。
就是这样,Maven 将处理剩下的事情。它将下载本地仓库中获取不到的插件,并开始处理。

相关文章
|
存储 自然语言处理 数据可视化
【软件设计师备考 专题 】设计数据模型:ER模型和数据模型
【软件设计师备考 专题 】设计数据模型:ER模型和数据模型
664 0
|
机器学习/深度学习 人工智能 监控
【AI 现况分析】AI大模型在财务规划和建议中的应用
【1月更文挑战第27天】【AI 现况分析】AI大模型在财务规划和建议中的应用
|
11月前
|
安全 搜索推荐 Android开发
揭秘iOS与安卓系统的差异:一场技术与哲学的较量
在智能手机的世界里,iOS和Android无疑是两大巨头,它们不仅定义了操作系统的标准,也深刻影响了全球数亿用户的日常生活。本文旨在探讨这两个平台在设计理念、用户体验、生态系统及安全性等方面的本质区别,揭示它们背后的技术哲学和市场策略。通过对比分析,我们将发现,选择iOS或Android,不仅仅是选择一个操作系统,更是选择了一种生活方式和技术信仰。
|
11月前
|
Java 测试技术 API
Java零基础-接口详解
【10月更文挑战第19天】Java零基础教学篇,手把手实践教学!
289 1
|
Java 数据库连接 mybatis
在Spring Boot应用中集成MyBatis与MyBatis-Plus
在Spring Boot应用中集成MyBatis与MyBatis-Plus
405 5
|
机器学习/深度学习 Python
sigmoid函数
本文探讨了高等数学中的sigmoid函数,它在神经网络中的应用,特别是在二分类问题的输出层。sigmoid函数公式为 $\frac{1}{1 + e^{-x}}$,其导数为 $sigmoid(x)\cdot(1-sigmoid(x))$。文章还展示了sigmoid函数的图像,并提供了一个使用Python绘制函数及其导数的代码示例。
863 2
|
Java 云计算
Java智能区域医院云HIS系统SaaS源码
云HIS提供标准化、信息化、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。优化就医、管理流程,提升患者满意度、基层首诊率,通过信息共享、辅助诊疗等手段,提高基层医生的服务能力构建和谐的基层医患关系。
304 2
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
JavaScript Java 测试技术
基于springboot+vue.js的校园二手书交易平台附带文章和源代码设计说明文档ppt
基于springboot+vue.js的校园二手书交易平台附带文章和源代码设计说明文档ppt
272 0
|
算法 Java
游戏匹配系统的奥秘,Java代码揭秘
游戏匹配系统的奥秘,Java代码揭秘
391 1