美文网首页
maven的生命周期

maven的生命周期

作者: 不知名的蛋挞 | 来源:发表于2018-09-26 10:17 被阅读14次

    三套生命周期

    对于maven的生命周期来说,共有三个相互独立的生命周期,分别是clean、default、site。clean生命周期目的是清理项目,default生命周期目的是构建项目,而site生命周期目的是建立项目站点。

    每个生命周期分别包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。如clean生命周期包含pre-clean、clean和post-clean三个阶段,如果执行clean阶段,则会先执行pre-clean阶段。

    较之于生命周期阶段有前后依赖关系,三套生命周期本身是相互独立的,用户可以仅调用clean生命周期的某个阶段,也可以不执行clean周期,而直接执行default生命周期的某几个阶段。

    clean生命周期

    clean生命周期包含三个阶段,主要负责清理项目,如下:

    • pre-clean:执行一些需要在clean之前完成的工作
    • clean:移除所有上一次构建生成的文件
    • post-clean:执行一些需要在clean之后立刻完成的工作

    default生命周期

    default生命周期定义了真正构建时所需要执行的所有步骤。当我们执行compile的时候,compile的生命周期就有这么多个步骤:

    • validate:验证
    • initialize:initialize build state, e.g. set properties or create directories.
    • generate-sources:generate any source code for inclusion in compilation.
    • process-sources:process the source code, for example to filter any values.
    • generate-resources:处理资源文件
    • process-resources:复制并处理资源文件,至目标目录,准备打包
    • compile:编译项目源代码
    • process-classes:post-process the generated files from compilation, for example to do bytecode enhancement on Java classes.
    • generate-test-sources:generate any test source code for inclusion in compilation.
    • process-test-sources:process the test source code, for example to filter any values.
    • generate-test-resources create resources for testing.
    • process-test-resources 复制并处理资源文件,至目标测试目录
      test-compile 编译测试源代码
    • process-test-classes: post-process the generated files from test compilation, for example to do bytecode enhancement on Java classes. For Maven 2.0.5 and above.
    • test:使用合适的单元测试框架运行测试,这些测试代码不会被打包或者部署。
    • prepare-package:perform any operations necessary to prepare a package before the actual packaging. This often results in an unpacked, processed version of the package. (Maven 2.1 and above)
    • package:接受编译好的代码,打包成可发布的格式,如jar
    • pre-integration-test:perform actions required before integration tests are executed. This may involve things such as setting up the required environment.
    • integration-test:process and deploy the package if necessary into an environment where integration tests can be run.
    • post-integration-test:perform actions required after integration tests have been executed. This may including cleaning up the environment.
      verify run any checks to verify the package is valid and meets quality criteria.
    • install:将包安装至本地仓库,以让其他项目依赖
    • deploy

    命令行与生命周期

    从命令行执行maven任务的最主要方式就是调用maven的生命周期阶段。需要注意的是,各个生命周期是相互独立的,而一个生命周期的阶段是有前后依赖关系的。例子如下:
    1、$mvn clean :该命令调用clean生命周期的clean阶段。实际执行的阶段为clean生命周期的pre-clean和clean阶段。

    2、$mvn test:该命令调用default生命周期的test阶段。实际调用的是default生命周期的validate、initialize等,直到test的所有阶段。

    3、$mvn clean install:该命令调换用clean生命周期的clean阶段和default生命周期的instal阶段。

    插件绑定

    maven的生命周期与插件相互绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标相互绑定,已完成某个具体的构建任务。例如项目编译这一任务,它对应了default生命周期的compile阶段,而maven-compiler-plugin这一插件的compile目标能够完成该任务,因此将他们绑定。

    相关文章

      网友评论

          本文标题:maven的生命周期

          本文链接:https://www.haomeiwen.com/subject/blhdoftx.html