Maven--生命周期

介绍:

      在Maven出现之前,项目构建的生命周期已经存在,软件开发人员每天都在对项目进行清理、编译、测试及部署。不同的公司不同的项目可能采用的方式不同,有的是手动,有的写自动化脚本。一般都是各写各的,能够满足自身需求,换个项目就需要重头再来。

      Maven的生命周期就是对所有的构件过程进行了抽象和统一。这个生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等计划所有构建的步骤。换句话说,就是几乎所有项目的构建,都能映射到这样一个生命周期上。


详解:

    我们往往以为Maven的生命周期是一个整体,其实不然,Maven拥有三套互相独立的生命周期,分别为clean、default和site。

    每个生命周期包含一些阶段,并且这些阶段是有顺序的,后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。

    clean生命周期:清理项目。包含三个阶段:

          pre-clean 执行一些清理前需要完成的工作。

          clean 清理上一次构建生成的文件。

          post-clean 执行一些清理后需要完成的工作。

    default生命周期:构建项目时所需要执行的所有步骤,最核心的部分。包含的阶段如下(重要的进行解释):

           validate

           initialize

           generate-sources

           process-sources 处理项目主要资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。

           generate-resources

            process-resources

            complie 编译项目的主源码。一般来说,是编译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项目使用。 

     site生命周期:建立和发布项目站点。Maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。包含以下阶段:

          pre-site 执行一些在生成项目站点之后需要完成的工作。

          site 生成项目站点文档

          post-site 执行一些在生成项目站点之后需要完成的工作。

          site-deploy 将生成的项目站点发布到服务器上。


Maven命令:

    mvn clean:调用clean生命周期的clean阶段。实际执行的阶段为clean生命周期的pre-clean和clean阶段。

    mvn test: 调用default生命周期的test阶段。实际执行的阶段为default生命周期的validate……等直到test的所有阶段。

     mvn clean install : 调用clean生命周期的clean阶段和default生命周期的install阶段。实际执行了clean生命周期的pre-clean和clean阶段,以及default生命周期的从validate至install的所有阶段。

     mvn clean deploy site-deploy:调用clean生命周期的clean阶段、default生命周期的deploy阶段,以及site生命周期的site-deploy阶段。实际执行了clean生命周期的pre-clean阶段,default生命周期的所有阶段以及site生命周期的所有阶段。


猜你喜欢

转载自blog.csdn.net/wxr15732623310/article/details/79585645
今日推荐