Maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任务可能就会由maven-jar-plugin完成。java
1. 三套生命周期:服务器
Maven有三套相互独立的生命周期,它们分别为clean、default和site。框架
clean生命周期的目的是清理项目。maven
default生命周期的目的是构建项目。post
site生命周期的目的是创建项目站点。单元测试
2. clean生命周期:测试
clean生命周期的目的是清理项目,它包含三个阶段:spa
1) pre-clean执行一些清理前须要完成的工做。插件
2) clean清理上一次构建生成的文件。命令行
3) post-clean执行一些清理后须要完成的工做。
3. default生命周期:
default生命周期定义了真正构建时所须要执行的全部步骤,它是全部生命周期中最核心的部分,其包含的阶段以下:
1) validate
2) initialize
3) generate-sources
4) process-sources : 处理项目主资源文件。通常来讲是对src/main/resources目录的内容进行变量替换等工做后,复制到项目输出的主classapth目录中。
5) generate-resources
6) process-resources
7) compile:编译项目的主源码。通常来讲,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中。
8) process-classes
9) generate-test-sources
10) process-test-sources:处理项目测试资源文件。通常来讲,是对src/test/resources目录的内容进行变量替换等工做后,复制到项目输出的测试classpath目录中。
11) generate-test-resources
12) process-test-resources
13) test-compile:编译项目的测试代码。通常来讲,是编译src/test/java目录下的Java文件至项目输出的测试classpath目录中。
14) process-test-classes
15) test:使用单元测试框架运行测试,测试代码不会被打包或部署。
16) prepare-package
17) package:接受编译好的代码,打包成可发布的格式,如jar。
18) pre-integration-test
19) integration-test
20) post-integration-test
21) verify
22) install:将包安装到Maven本地仓库,供本地其余Maven项目使用。
23) deploy:将最终的包复制到远程仓库,供其余开发人员和Maven项目使用。
4. site生命周期:
site生命周期的目的是创建和发布项目站点,Maven可以基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。该生命周期包含以下阶段:
1) pre-site:执行一些在生成项目站点以前须要完成的工做。
2) site:生成项目站点文档。
3) post-site:执行一些在生成项目站点以后须要完成的工做。
4) site-deploy:将生成的项目站点发布到服务器上。
5. 命令行与生命周期:
从命令行执行Maven任务的最主要方式就是调用Maven的生命周期阶段。