Maven的生命周期
1、首先,让我们知道maven是什么?
没错,连用的东西怎么用都不知道,不是很尴尬吗。不要再读成“妈们”了!!!
接下来,让我们进入正题。
2、maven是什么?
大部分人对于maven的印象就是,jar包管理,emmmm,很方便。其实,完整的说法是:maven是一种构建工具,不仅仅是管理jar包,maven自身定义了一套对项目进行编译、测试、打包、运行和部署等工作。
3、maven怎么实现功能?
Maven把编译、打包、测试、运行、部署等工作交给插件完成,而maven扮演了指挥者一般的角色。
例如:
编译插件:maven-compiler-plugin
依赖管理插件:maven-dependency-plugin
打包插件:maven-jar-plugin、maven-war-plugin
等等等。。。
Maven通过mvn命令去调用插件,从而完成编译等工作。
4、mvn的生命周期
为什么要知道maven的生命周期呢?想要通过maven完成项目构建,肯定要通过mvn命令,调用maven的插件,完成功能。那么,想要了解mvn命令,就得先知道maven的声明周期。
Maven有三套独立的生命周期:clean、default和site。
问题一:什么叫独立?
调用某一个生命周期,不会影响其他两个生命周期。
问题二:什么叫三套:
每一个生命周期有不同的阶段,在独立的一个生命周期内的阶段是有前后的依赖关系的。
Clean生命周期:(三个阶段)
Pre-clean
Clean :清理上一次构建生成的文件
Post-clean
如果想要执行clean,那么首先要执行pre-clean。
问题三:那岂不是很麻烦,要先执行pre-clean,在执行clean,而且这个pre-clean我怎么没见过?
只要告诉Maven你想要做的最后的目标就可以了,Maven会自动执行改目标之前的所有阶段
Default生命周期:(如下阶段)
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
pre-integration-test
integration-test
post-integration-test
verify
install
deploy
default的阶段有点多。。。也就是说,如果你执行mvn deploy,maven就会调用插件,从mvn validate开始执行到mvn deploy,而且,不会执行mvn clean,因为不同生命周期之间的独立的。
Site生命周期:(四个阶段)
Pre-site
Site
Post-site
Site-deploy
Site生命周期的目的是建立和发布项目站点。(好吧,我也很少用)
最后,来点干货:
mvn clean compile 编译
mvn clean test 测试
mvn clean package 打包
mvn clean install 把生成的jar/war包复制到本地repository(就是~/.m2/repository下面)
mvn clean deploy 把生成的jar/war包发送到远程repository(建议配置了私服,那就是往私服发送了)
mvn cargo:run 通过cargo插件,把生成的war包部署到本地服务器,并启动。(注意要先运行 mvn clean package 打包)
更多内容请关注微信公众号“外里科技”
官方公众号 | 外里科技 |
运营公众号 | 英雄赚 |
微信 | wxid_8awklmbh1fzm22 |
1247408032 | |
开源代码 | https://gitee.com/B_T/beimi |