Maven生命周期
1.何为生命周期
Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。
Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务(如编译源代码)都交由插件来完成。
2.三套生命周期
2.1 clean生命周期
clean生命周期的目的是清理项目,它包含三个阶段:
1)pre-clean执行一些清理前需要完成的工作。
2)clean清理上一次构建生成的文件。
3)post-clean执行一些清理后需要完成的工作。
2.2 default生命周期
default生命周期定义了真正构建时所需要执行的所有步骤,它是所有生命周期中最核心的部分,其包含的阶段如下:
·validate
·initialize
·generate-sources
·process-sources处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。
·generate-resources
·process-resources
·compile编译项目的主源码。一般来说,是编译src/main/java目录下的Java文件至项目输出的主classpath目录中。
·process-classes
·generate-test-sources
·process-test-sources处理项目测试资源文件。一般来说,是对src/test/resources目录的内容进行变量替换等工作后,复制到项目输出的测试classpath目录中。
·generate-test-resources
·process-test-resources
·test-compile编译项目的测试代码。一般来说,是编译src/test/java目录下的Java文件至项目输出的测试classpath目录中。
·process-test-classes
·test使用单元测试框架运行测试,测试代码不会被打包或部署。
·prepare-package
·package接受编译好的代码,打包成可发布的格式,如JAR。
·pre-integration-test
·integration-test
·post-integration-test
·verify
·install将包安装到Maven本地仓库,供本地其他Maven项目使用。
·deploy将最终的包复制到远程仓库,供其他开发人员和Maven项目使用。
2.3 site生命周期
site生命周期的目的是建立和发布项目站点,Maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。该生命周期包含如下阶段:
·pre-site执行一些在生成项目站点之前需要完成的工作。
·site生成项目站点文档。
·post-site执行一些在生成项目站点之后需要完成的工作。
·site-deploy将生成的项目站点发布到服务器上。
3. 命令行与生命周期
mvn clean
mvn test
mvn clean install
mvn clean deploy site-deploy
4. 插件配置
用户可以在Maven命令中使用-D参数,并伴随一个参数键=参数值的形式,来配置插件目标的参数 (-D是java自带的,其功能是通过命令行设置一个Java系统属性)
如:mvn install -Dmaven.test.skip=true 可以跳过执行测试
5.插件仓库
------------------------------------------摘自 Maven实战