Maven 生命周期、自定义插件、生命周期默认绑定的插件


生命周期


Maven 定义了三个类别的生命周期:

  1. 清理工作的生命周期:Clean
  2. 构建和部署工作的生命周期:Default
  3. 创建站点工作的生命周期:Site

Maven 的每个生命周期内部,又细分成多个执行阶段

每个生命周期间是独立的,但是同一生命周期内的阶段是有顺序的,当一个阶段执行时,在它前面的所有同一生命周期的阶段都会被执行,比如我们执行 mvn post-clean 那么 pre-cleanclean 两个阶段也会被自动执行

Maven 只是定义了这些执行阶段,并没有对其具体实现,所有的实现都是由插件来提供,Maven 只是起到了调用作用,和一点点的规范作用,为啥说只是一点点呢,比如 Maven 定义 clean 阶段的本意是想让插件实现时做清理操作,但是插件实现时偏偏在 clean 阶段做了打包处理,那也没有办法

Clean 生命周期内部阶段,按阶段顺序列举

阶段名称 Maven 建议插件实现该阶段时的处理
pre-clean 清理前的处理
clean 真正的清理处理
post-clean 清理后的处理

Default 生命周期内部阶段,只列举核心阶段,按阶段顺序列举

阶段名称 Maven 建议插件实现该阶段时的处理
validate 校验项目的正确性
compile 编译项目中 src=>mainsrc=>test 目录下的源代码
test-compile 编译项目中 src=>test 目录下的源代码
test 执行 test-compile 编译后的二进制文件
package 生成目标包,jar war 等
install 将生成的包安装到本地仓库
deploy 将生成的包安装到远程仓库

Site 生命周期内部阶段,按阶段顺序列举

阶段名称 Maven 建议插件实现该阶段时的处理
pre-site 生成站点文档前的处理
site 真正生成站点文档的处理
post-site 生成站点文档后的处理
site-deploy 将站点文档部署到服务器的处理

执行 Maven 生命周期的命令

执行 Maven 生命周期的命令格式是:mvn 阶段名,比如:mvn clean,就会执行与 clean 阶段 绑定的插件功能(同一阶段可以绑定多个插件,运行时都会被执行),注意:生命周期命令必须在有 pom.xml 的路径下运行

自定义 Maven 插件


先看一下执行插件的命令 mvn 插件名:目标名

插件名和目标名

插件名:

插件名与我们自定义插件工程的 <artifactId> 息息相关,所以 <artifactId> 不能乱起,需要满足规则:

  • ${name}-maven-plugin
  • maven-${name}-plugin

<artifactId> 必须满足上面两个规则中的一个,而 ${name} 部分就会自动变成我们的插件名,
比如 artifactId 是 ares5k-maven-plugin,那么我们的插件名就是 ares5k


目标名:

每个自定义插件中,可以定义多个功能,每个功能需要用目标名来标识,后面用命令调用插件的时候,需要指定目标名来明确具体调用插件中的哪一个功能,大概原理如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值