Maven生命周期(lifecycle)由各个阶段组成,每个阶段由Maven的插件plugin来执行完成。

生命周期(lifecycle)主要包括clean、resources、complie、install、pacakge、testResources、testCompile、deploy等,其中带test开头的都是用业编译测试代码或运行单元测试用例的。

最常用的两种打包方法:
(1)clean,package(如果报错,很可能就是jar依赖的问题)
(2)clean,install

9种生命周期:

1 clean

清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。

2 valitate

验证,验证工程是否正确,所需的信息是否完整。

3 compile

编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。

4 test

单元测试,测试。

5 package

打包,将工程文件打包为指定的格式,例如JAR,WAR等。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了。

6 verify

核实,检查package是否有效、符合标准。

7 install

安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)

8 build

功能类似compile,只是只对整个项目进行编译。

9 site

站点,生成项目的站点文档。

10 deploy

复制到远程仓库。

build和compile的区别

Compile:只编译选定的目标,不管之前是否已经编译过。
Build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。Build过程往往会生成发布包,这个具体要看对IDE的配置了,Build在实际中应用很少,因为开发时候基本上不用,发布生产时候一般都用ANT等工具来发布。Build因为要全部编译,还要执行打包等额外工 作,因此时间较长。

package、install和deploy的区别

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。

install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库。

deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。

【Maven】IDEA中Maven生命周期相关推荐

  1. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  2. Maven(2)--生命周期以及插件目标

    maven的生命周期 maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成.这种思想和设计模式中的模板方式. maven内置的生命周期: maven ...

  3. Maven补全之生命周期(Lifecycle)

    Maven补全之生命周期(Lifecycle) Maven生命周期基础概念 Maven是基于生命周期构建的,一个Maven项目的构建是已经被清晰定义的过程. 对于我们使用Maven构建项目来说,POM ...

  4. 第9章 maven的插件和生命周期

    第9章 maven的插件和生命周期 本章介绍了maven生命周期.插件以及如何配置插件 9.1 生命周期 一般的项目都会经历这几个步骤:编译,测试,打包,部署,有些公司是手动方式,有些是自动化脚本方式 ...

  5. [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

    Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...

  6. java session 生命周期_Java中httpsession生命周期

    Java中httpsession生命周期 HttpSession会话范围是某个用户从首次访问服务器开始,到该用户关闭浏览器结束,那么从用户访问到退出浏览器它的生命周期过程如下: 1. 当浏览器A向服务 ...

  7. Unity中场景生命周期的监听: EditorSceneManager

    本文分享Unity中场景生命周期的监听: EditorSceneManager 在Unity开发中, 有时我们需要在场景的某些生命周期时做一些特定的操作, 特别是在Editor模式下的一些工具代码. ...

  8. Fragment在ViewPager中的生命周期

    转载自 hdszlk的博客     原文链接:https://www.2cto.com/kf/201607/530540.html 1.一直以来的疑问 Fragment在ViewPager到底经历了哪 ...

  9. 小程序中的生命周期有哪些?

    一.小程序中生命周期的分类 小程序中的生命周期有以下三种: (1)应用生命周期 小程序的生命周期函数是在app.js中调用,通过App(Object)函数用来注册一个小程序,指定其小程序的生命周期回调 ...

  10. uni-app中的生命周期方法

    uni-app中的生命周期方法 -- 重点面试题 概念:LifeCycle Methods,方法名固定,无需自己调用,到了指定的时刻,会被框架自动调用.  1.应用级生命周期方法(App.vue) - ...

最新文章

  1. Rabbitmq 消息对列 生产者与消费者的具体实现 springboot
  2. hive 数据存储格式详解
  3. 刚刚更新:在线聊天系统设计(原理+思路+源码+效果图)
  4. 短信网址价值不大不应被热炒
  5. android 仿360浮动,Android--模仿360底部导航按钮
  6. webpack打包发布
  7. NOIP模拟测试24「star way to hevaen·lost my music」
  8. elementui Cascader 省市区联动选择器,应用与回显
  9. PowerDesigner如何设计表之间的关联
  10. c语言标识符的规范,初识C语言-声明和使用变量、标识符的命名规范以及基本数据类型...
  11. 【完美解决】ds1302外置时钟模块重复初始化时间问题(单片机掉电,模块电池供电)
  12. Matlab 神经网络工具箱应用
  13. C# 读取oracle 中文乱码的解决方案
  14. 复利思维,您做到了吗?
  15. 多任务情况下各项loss权重平衡的问题
  16. (排序3)希尔排序时间复杂度与直接选择排序
  17. A - Portal(cf) 前缀和 区间维护
  18. 2,4-二硝基苯磺酰基(DNBS)修饰BODIPY染料识别GSH/溶酶体
  19. 指南解读:急性心力衰竭中国急诊管理指南(2022)
  20. python做工资条_4种工资条制作方法,总有一款适合你

热门文章

  1. 解决Windows11家庭版无法远程问题(无需任何升级即可mstsc)
  2. 100道Python面试练习题【含答案】
  3. 国美扔出三帖良药不再沉默
  4. php 视频设置参数设置,AnyChat SDK知识中心 - 如何设置合适的视频质量参数?
  5. matlab中的eps功能
  6. 看看“鲸鱼APP”模式是如何成功的
  7. VERITA备份日常监控及相关命令操作
  8. Vulnhub靶机实战-CH4INRULZ
  9. 计算机技术指标是,计算机主要技术指标通常是指
  10. 新概念英语第一册——5-8笔记