Maven的生命周期

1、首先,让我们知道maven是什么?

maven的生命周期_java

没错,连用的东西怎么用都不知道,不是很尴尬吗。不要再读成“妈们”了!!!

 

接下来,让我们进入正题。

 

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 打包)

 

 

更多内容请关注微信公众号“外里科技

官方公众号

外里科技

运营公众号

英雄赚





开源代码

https://gitee.com/B_T/beimi

maven的生命周期_maven_02