2019独角兽企业重金招聘Python工程师标准>>>
Maven的生命周期不是一个整体,而是 三套 相互独立的生命周期,分别是 clean,default,site 。每个生命周期都有各自不同的生命阶段,可以单独执行一个生命周期的某个阶段,在执行时,此生命周期该阶段的其他阶段也依赖执行。
clean生命周期:目的清理项目
阶段 | 含义 |
---|---|
pre-clean | 执行一些清理前需要完成的工作 |
clean | 清理上一次构件生成的文件 |
post-clean | 执行一些清理后需要完成的工作 |
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本地仓库,供本地其他项目使用 |
deploy | 将最终的包复制到远程仓库,供其他开发人员和Maven项目使用 |
site 生命周期:建立和发布项目站点,Maven能够基于pom所包含的信息,自动生成一个友好的站点。
阶段 | 含义 |
---|---|
pre-site | 执行一些在生成站点之前需要完成的工作 |
site | 生成项目站点文档 |
post-site | 执行一些在生成站点之后需要完成的工作 |
site-deploy | 将生成的项目站点发布到服务器上 |
命令和生命周期
从命令行执行Maven任务的主要方式就是调用 Maven的生命周期阶段。各个生命周期相互独立,而一个生命周期的阶段有前后依赖关系。
常用命令
mvn clean #清理
mvn test #测试
mvn clean install #发布到本地仓库
mvn clean depoly site-depoly #发布到远程仓库