Maven学习笔记-maven的生命周期

1.什么是maven的生命周期

maven的生命周期是一个抽象的概念,maven将我们开发一个项目从环境搭建开始到项目部署运行的整个构建过程进行了一个概括描述,所以maven项目的整个开发过程就是maven的生命周期。并且为了对项目开发各个阶段更好的进行控制,maven将整个构建过程大致分为了7个环节。

在这里插入图片描述

阶段处理描述
清理clean清理项目将之前编译好的旧的class字节码文件清理掉,为下次编译做准备
编译 compile执行编译将java源代码编译成class字节码文件
测试 test测试使用适当的单元测试框架(例如JUnit)自动运行测试。
报告 report生成测试报告将测试程序执行的结果进行报告
包装 package打包创建JAR/WAR包
安装 install安装安装打包的项目到本地仓库,以供其他项目使用
部署 deploy部署拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

2.maven的标准生命周期

maven在其核心程序中定义了三个标准的声明周期,并且每个生命周期中都包含了不同的阶段,其中最主要的就是default生命周期:

  • clean:项目清理

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

  • default:项目部署

    validate(校验)校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
    initialize(初始化)初始化构建状态,比如设置属性值。
    generate-sources(生成源代码)生成包含在编译阶段中的任何源代码。
    process-sources(处理源代码)处理源代码,比如说,过滤任意值。
    generate-resources(生成资源文件)生成将会包含在项目包中的资源文件。
    process-resources (处理资源文件)复制和处理资源到目标目录,为打包阶段最好准备。
    compile(编译)编译项目的源代码。
    process-classes(处理类文件)处理编译生成的文件,比如说对Java class文件做字节码改善优化。
    generate-test-sources(生成测试源代码)生成包含在编译阶段中的任何测试源代码。
    process-test-sources(处理测试源代码)处理测试源代码,比如说,过滤任意值。
    generate-test-resources(生成测试资源文件)为测试创建资源文件。
    process-test-resources(处理测试资源文件)复制和处理测试资源到目标目录。
    test-compile(编译测试源码)编译测试源代码到测试目标目录.
    process-test-classes(处理测试类文件)处理测试源码编译生成的文件。
    test(测试)使用合适的单元测试框架运行测试(Juint是其中之一)。
    prepare-package(准备打包)在实际打包之前,执行任何的必要的操作为打包做准备。
    package(打包)将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
    pre-integration-test(集成测试前)在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
    integration-test(集成测试)处理和部署项目到可以运行集成测试环境中。
    post-integration-test(集成测试后)在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
    verify (验证)运行任意的检查来验证项目包有效且达到质量标准。
    install(安装)安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
    deploy(部署)将最终的项目包复制到远程仓库中与其他开发者和项目共享。

  • site:项目站点文档创建

    pre-site:执行一些需要在生成站点文档之前完成的工作
    site:生成项目的站点文档
    post-site: 执行一些需要在生成站点文档之后完成的工作,并 且为部署做准备
    site-deploy:将生成的站点文档部署到特定的服务器上

3.maven生命周期的特点

  1. 各个构建环节的执行顺序是不能被打乱的,必须按照既定的正确顺序来执行
  2. 每个默认的生命周期中都包含了不同的阶段,这些阶段在执行时都会从该声明周期的第一个阶段开始执行,比如:在执行compile时会动default的“validate”开始执行到“compile”
    在这里插入图片描述
  3. 生命周期中各个阶段的具体任务是由特定的插件来完成的,一个插件目标代表一个特定的任务,它比构建阶段更为精细,这有助于项目的构建和管理
    如上图所示:compile就是生命周期中的一个阶段,它的目标就是编译主程序,那么它就会调用 maven-compiler-plugin:3.1这个插件来完成编译
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值