maven生命周期

    科技2022-07-10  180

    1. 生命周期介绍

    maven是一个项目构建(build)工具。对于一个项目包含清理、编译、测试、打包、发布包、部署等工作,maven把这些工作抽象成一个项目的生命周期,即mavn的生命周期。可以在不使用maven的情况下,实现项目的清理、编译、测试、打包等项目相关操作,可以更好理解maven功能。参考 java自带项目管理命令 。

    Maven提供了三个独立的生命周期clean、default、site:

    clean生命周期:负责清理项目default生命周期:负责构建项目site生命周期:负责建立项目站点。

     

    2. 生命周期阶段和插件映射

    如下:( 可以参考maven官网 插件  http://maven.apache.org/plugins/index.html)

    (1)clean

    阶段描述绑定插件的目标pre-clean  clean清空target目录

    mvn-clean-plugin:clean

    post-clean  

    (2)default

    阶段描述绑定插件validate  initialize  generate-sources  process-sources

    处理项目的资源文件,把src/main/resources目录下的文件复制输出到classpatch中

     process-sources  generate-resources  process-resources

    复制主资源文件至主输出目录

    mvn-resource-plugin:resources

    compile

    编译项目代码,生成class文件放到lclasspath目录

    mvn-compiler-plugin:compile

    process-class  generate-test-sources  

    process-test-sources

    处理项目的测试资源文件,把src/main/resources目录下的文件复制输出到classpatch中

     

    generate-test-resources

      

    process-test-resources

      test

    使用单元测试框架运行测试,测试代码不会被打包或部署。把class放到测试环境的classpath目录

    mvn-surefire-puligin:test

    prepare-package

      

    package

    打包生成jar,放到target目录

    mvn-jar-plugin:jar

    pre-integration-test

       integration-test  

    post-integration-test

      verify  install发布到本地仓库

    mvn-install-plugin:install

    deploy发布到远程仓库

    mvn-deploy-plugin:deploy

    package阶段是  执行打包,并且把依赖的包下载到本地目录,是否maven的依赖都会下载到本地工程目录进行打包?包含三种情况:

    默认只对项目生成一个jar,没有第三方依赖通过assembly插件生成一个tar.gz,包含 项目jar和第三方jar。将项目class和第三方jar组成一个 jar文件,使用spring-boot-maven-plugin:repackage。

    (3)site

    阶段描述绑定插件pre-site  sit生成项目站点 post-site  sit-deploy将生成项目站点发布到服务器 

     

    Processed: 0.027, SQL: 8