您的位置:首页 > Web前端

Maven的声明周期(Lifecycle )和命令(Phase)

2014-03-25 18:42 417 查看
生命周期(Lifecycle )

Maven有三套相互独立的生命周期(Lifecycle ):

Clean Lifecycle:做一些清理工作;

Default Lifecycle:构建的核心部分、编译、测试、打包、部署等;

Site Lifecycle:生成项目报告、站点、发布站点;




阶段(Phase)


而每套生命周期都是一组阶段(Phase)组成,各套Lifecycle 的Phase如下:

Clean Lifecycle

pre-clean 执行一些需要在clean之前完成的工作;

clean 移除所有上一次构建生成的文件;

post-clean 执行一些需要在clean之后立刻完成的工作;

Site Lifecycle

pre-site 执行一些需要在生成站点文档之前完成的工作;

site 生成项目的站点文档;

post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备;

site-deploy 将生成的站点文档部署到特定的服务器上;

Default Lifecycle

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 将最终的包复制到远程的仓库,以让其它开发人员与项目共享;

更多声明周期请参考官方文档



命令和Phase的关系


我们平时在命令行输入的Maven命令总会对应于一个特定的Phase相对应,如:

mvn pre-clean


这是执行Clean生命周期的第一个Phase,而在运行某个Phase时,Maven会按顺序地把与它同一套中的它之前的Phase也自动执行,如

mvn clean


会先执行pre-clean和clean。

然而到这里没有完,当执行Phase的时候,内部是怎么执行的呢?我们将继续探讨,请参考Maven的插件编写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: