DLancerC

Maven 学习笔记(四)

Maven 是通过设计的插件机制来实现 Maven 构件项目的的周期. 比如 :编译周期有 maven-compiler-plugin, 而针对测试插件有 maven-surefire-plugin 等.Maven 拥有3套相互独立的生命周期,clean, default 和 site. clean 生命周期的目的是为了清理项目, default生命周期的目的是为了构件项目, site生命周期的目的是为了建立项目站点.

clean

阶段
pre-clean 执行一些清理前需要完成的工作
clean 清理上一次构件生成的文件
post-clean 执行一些清理后需要完成的工作

default

阶段
validate 验证项目是正确的, 所有重要的信息是可用
initialize 初始化构建状态, eg: 设置属性, 创建目录
generate-sources 编译原代码
process-sources 处理源代码, eg: 过滤一些值
genreate-resources 生成资源文件
process-resources 复制和处理资源到目标目录,准备进行打包
compile 编译项目的源代码
process-classes 处理编译生成文件, 比如JAVA文件的字节码
generate-test-sources 生成测试编译文件的
process-test-sources 处理测试源代码, eg: 过滤一些值
genreate-test-resources 创建测试配置文件
process-test-resources 复制和处理资源到测试目标目录
test-compile 编译项目测试的源代码到指定目录
process-test-classes 处理测试编译生成的文件
test 使用单元测试框架运行测试, 测试源代码不会被打包
prepare-package 准备打包版本
package 接收编译代码,打包成一个可发布格式,例如一个JAR
pre-integration-test 集成到测试环境前需要采取的行动, eg: 配置测试环境
integration-test 处理,并部署包在中,集成到测试环境中(如果有必要)
post-integration-test 进行集成测试执行后需要采取的行动 eg: 清理环境
verify 运行任何检查,以验证包是有效性,并符合标准
install 安装包到本地仓库,用作当地其他项目的依赖
deploy 将包部署到远程仓库, 与其他开发人员共享和项目

site

阶段
pre-site 执行一些生成项目站点之前需要完成的工作
site 生成项目站点文件
post-site 执行一些生成项目站点之后需要完成的工作
site-deploy 将项目站点发布到服务器上

##命令对应的生命周期:

  • $mvn clean
    调用 clean 生命周期的clean阶段. 实际执行阶段为 clean 生命周期的 pre-clean 和 clean阶段

  • $mvn test
    调用 default 生命周期的 test 阶段. 实际执行阶段为 default 生命周期的 validate , initialize等阶段, 直到 test 所有阶段

  • $mvn clean install
    调用 clean 生命周期的 clean 阶段和 default 生命周期的 install 阶段. 实际执行阶段为 clean 生命周期的 pre-clean 和 clean 阶段, 和 default 生命周期的 validate , initialize等阶段, 直到 install 所有阶段

  • $mvn clean deploy site-deploy
    调用 clean 生命周期的 clean 阶段和 default 生命周期的 deploy 阶段, 以及 site 生命周期的 deploy-site 阶段. 实际执行阶段为 clean 生命周期的 pre-clean 和 clean 阶段, 和 default 生命周期的所有阶段, site 生命周期所有阶段.