Maven的生命周期和插件

时间:2023-03-08 15:22:17
Maven的生命周期和插件

首先解释下maven build等

Maven的生命周期和插件

Maven build是这个插件让你自己去配置执行目标的。Maven clean 清除上一次Maven执行的结果Maven generate-sources会根据pom配置去生成源代码格式的包Maven install将项目输出构件部署到本地仓库

插件目标:

拿Maven clean来说,生命周期为clean.插件目标为maven-clean-plugin:clean。

maven有三套生命周期

1.clean       清理项目

2.default     构建项目

3.site           建立项目站点

这三套生命周期是相互独立的,可以仅仅调用clean声明周期的某个阶段, 或者调用default生命周期的某个阶段,而不会对其他生命周期产生任何影响。

clean生命周期共包含了三个阶段:
            pre-clean  执行一些需要在clean之前完成的工作
            clean  移除所有上一次构建生成的文件
            post-clean  执行一些需要在clean之后立刻完成的工作

default生命周期包含的阶段:
             validate
             initialize
             generate-sources
             process-sources
             generate-resources
             process-resources     复制并处理资源文件,至目标目录,准备打包。
             compile     编译项目的源代码。
             process-classes
             generate-test-sources  
             process-test-sources 
             generate-test-resources
             process-test-resources     复制并处理资源文件,至目标测试目录。
             test-compile     编译测试源代码。
             process-test-classes 
             test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
             prepare-package 
             package     接受编译好的代码,打包成可发布的格式,如 JAR 。
             pre-integration-test
             integration-test
             post-integration-test 
             verify 
             install     将包安装至本地仓库,以让其它项目依赖。
             deploy     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

site生命周期的各个阶段:
             pre-site     执行一些需要在生成站点文档之前完成的工作
             site     生成项目的站点文档
             post-site     执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
             site-deploy     将生成的站点文档部署到特定的服务器上

组合阶段执行

mvn clean     调用的clean生命周期的clean阶段,实际执行的是pre-clean和clean阶段。

mvn test         执行的是default生命周期的test阶段, 实际执行的是validate到test阶段。

mvn clean  package      clean生命周期的pre-clean,clean阶段和 default生命周期的从validate到package阶段。

内置绑定

Maven在核心为一些主要的生命周期阶段绑定了很多插件的目标

clean生命周期阶段与插件目标的绑定关系

生命周期阶段 插件目标
pre-clean  
clean maven-clean-plugin:clean
post-clean  

site生命周期阶段与插件目标的绑定关系

生命周期阶段 插件目标
pre-site  
site maven-site-plugin:site
post-site  
site-deploy maven-site-plugin:deploy

default生命周期与内置插件绑定关系及具体任务(打包类型: jar)

生命周期阶段 插件目标 执行任务
process-resources maven-resources-plugin:resources 复制主资源文件至主输出目录
compile maven-compile-plugin:compile 编译主代码至主输出目录
process-test-resources maven-resources-plugin:testRresources 复制测试资源文件至测试输出目录
test-compile maven-compiler-plugin:testCompile 编译测试代码至测试输出目录
test maven-surefire-plugin:test 执行测试用例
package maven-jar-plugin:jar 创建项目jar包
install maven-install-plugin:install 将项目输出构件安装到本地仓库
deploy maven-deploy-plugin:deploy 将项目输出构件部署到远程仓库