资料:
- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
Maven生命周期
三套生命周期
Maven定义了三套生命周期:clean、default、site,每个生命周期都包含了一些阶段(phase)。
三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。
执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase。
- Clean Lifecycle
构建之前处理一些清理动作 - Default Lifecycle
核心构建过程,包括编译、测试、打包、部署等 - Site Lifecycle
站点信息、项目报告等内容生成
注意:执行某个阶段时,该阶段之前的阶段都会执行,例如执行mvn deploy
时default生命周期内的所有阶段都会执行
1. clean生命周期
phase | desc |
---|
pre-clean | 在实际项目清理之前执行所需的流程 |
clean | 删除先前构建生成的所有文件 |
post-clean | 执行完成项目清理所需的流程 |
mvn clean
等价于mvn pre-clean clean
2. default生命周期
default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤。
phase | desc |
---|
validate | 验证项目是否正确并且所有必要的信息都可用 |
initialize | 初始化构建状态,例如设置属性或创建目录 |
generate-sources | 生成包含在编译中的任何源代码 |
process-sources | 处理源代码,例如过滤任何值 |
generate-resources | 生成包含在包中的资源 |
process-resources | 将资源复制并处理到目标目录中,准备打包 |
compile | 编译项目的源代码 |
process-classes | 对编译生成的文件进行后处理,例如对 Java 类进行字节码增强 |
generate-test-sources | 生成任何测试源代码以包含在编译中 |
process-test-sources | 处理测试源代码,例如过滤任何值 |
generate-test-resources | 创建用于测试的资源 |
process-test-resources | 将资源复制并处理到测试目标目录中 |
test-compile | 将测试源代码编译到测试目标目录中 |
process-test-classes | 对测试编译生成的文件进行后处理,例如对 Java 类进行字节码增强 |
test | 使用合适的单元测试框架运行测试。这些测试不应该要求打包或部署代码 |
prepare-package | 在实际包装之前执行准备包装所需的任何操作。这通常会导致包的解包、处理版本 |
package | 获取编译后的代码并将其打包为可分发的格式,例如 JAR |
pre-integration-test | 在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境之类的事情 |
integration-test | 如有必要,处理并部署包到可以运行集成测试的环境中 |
post-integration-test | 执行集成测试后执行所需的操作。这可能包括清理环境 |
verify | 运行任何检查以验证包是否有效并符合质量标准 |
install | 将包安装到本地存储库中,用作本地其他项目的依赖项 |
deploy | 在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享 |
3. site生命周期
phase | desc |
---|
pre-site | 在实际项目现场生成之前执行所需的流程 |
site | 生成项目的站点文档 |
post-site | 执行完成站点生成和准备站点部署所需的流程 |
site-deploy | 将生成的站点文档部署到指定的 Web 服务器 |
内置生命周期绑定
默认情况下,某些阶段具有与其绑定的目标。对于默认生命周期,这些绑定取决于打包值。以下是一些目标(goal)到构建阶段(phase)的绑定。
清理生命周期绑定
默认生命周期绑定 - ejb/ ejb3/ jar/ par/ rar/war
阶段 | 插件:目标 |
---|
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | ejb:ejb 或 ejb3:ejb3 或 jar:jar 或 par:par 或 rar:rar 或 war:war |
install | install:install |
deploy | deploy:deploy |
默认生命周期绑定 - ear
阶段 | 插件:目标 |
---|
generate-resources | ear:generate-application-xml |
process-resources | resources:resources |
package | ear:ear |
install | install:install |
deploy | deploy:deploy |
默认生命周期绑定 - maven-plugin
阶段 | 插件:目标 |
---|
generate-resources | plugin:descriptor |
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | jar:jar 和 plugin:addPluginArtifactMetadata |
install | install:install |
deploy | deploy:deploy |
默认生命周期绑定 - pom
阶段 | 插件:目标 |
---|
package | |
install | install:install |
deploy | deploy:deploy |
站点生命周期绑定
阶段 | 插件:目标 |
---|
site | site:site |
site-deploy | site:deploy |