在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令:

1、Maven Build:

  这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。

2、Maven Build....

  可以在打开窗口输入install命令,勾选上"Skip Tests"表示不编译测试代码(在src/test/下的代码),

  因为需要生成测试包或正式包的时候,测试代码是不需要的,测试代码只是开发的时候需要,

  最后Run执行命令:

  Name:可以给这个操作命令命名,每执行一个maven命令都会被保存。

  Goals:输入我们需要执行的maven命令,一次执行多个命令用空格隔开。

  复选框:下面的复选框可以让我们进行一些选择性的操作,如上图跳过测试

  

  这个时候看看项目目录下是否多了个target文件:

  

  target文件内容:

  

  这个时候看到生成的XXX.war包,将war包放入web容器,即可启动web项目。

  (web项目打成war包,Java项目打成jar包,不同项目配置,打得包类型不同,这里是web项目)

  注: 我们也可以执行组合命令,一步完成打包,比如:

  

  运行时效果与其分步执行clean,然后再install一样。

3、Maven Clean:

  删除target文件夹,即删除生成的package包以及class等文件。

4、Maven Test:

  先自动进行编译,在运行所有的测试用例。

5、Maven install:

  发布生成对应的package包(有war和jar两种形式)。

PS:留意上面的命令的作用,build和test都会生成相应的 class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出 java.class.notfound的错误。因为此时还没有编译生成class文件。只有使用了上面的两个命令后,才能针对某个类进行单元测试(实际 上单元测试我们会选择junit)。

Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。

6、Maven Update Project...

  该命令的更新项目之意,其中包含多个勾选项:

    Update dependencies:更新依赖

    Update project configuration from pom.xml:根据pom文件更新项目配置,我想这一般用在pom文件发生修改的时候

    Refresh workspace resources from local filesystem:刷新本地工作空间资源

    Clean project:清空target目录并重新编译

  我觉得这个更新的最重要功能还是更新依赖,一旦我们建立好依赖关系,一般是不会经常进行修改的,这里的修改指的是pom文件的修改,只要我们没有修改pom文件,那么也就是说我们没有必要在仅仅更新项目代码的情况下去执行项目更新。

  而且其实但我们修改了POM文件之后,Maven会自动执行项目更新操作。

7、服务器publish发布

  这个命令是服务器命令,Eclipse整合Tomcat之后,当我们修改了源码,只需要执行publish命令就可以将修改后的内容发布到服务 器目录,同时发布的还包括之前未完成的打包任务,执行publish命令会自动完成打包并将该最新包发布到服务器lib下,但是这个命令并不会更新本地仓 库与target目录中的jar包,这两处只能手动执行Maven install命令来进行更新。

Maven生命周期详解

一、Maven的生命周期

Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。

Maven的生命周期是抽象的,即生命周期不做任何实际的工作,实际任务由插件完成,类似于设计模式中的模板方法。

二、三套生命周期

Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

1、clean生命周期:清理项目,包含三个phase。

  1)pre-clean:执行清理前需要完成的工作

  2)clean:清理上一次构建生成的文件

  3)post-clean:执行清理后需要完成的工作

2、default生命周期:构建项目,重要的phase如下。

  1)validate:验证工程是否正确,所有需要的资源是否可用。
  2)compile:编译项目的源代码。  
  3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
  4)Package:把已编译的代码打包成可发布的格式,比如jar。
  5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
  6)verify:运行所有检查,验证包是否有效且达到质量标准。
  7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
  8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

3、site生命周期:建立和发布项目站点,phase如下

  1)pre-site:生成项目站点之前需要完成的工作

  2)site:生成项目站点文档

  3)post-site:生成项目站点之后需要完成的工作

  4)site-deploy:将项目站点发布到服务器

三、命令行和生命周期

各个生命周期相互独立,一个生命周期的阶段前后依赖。

举例如下:

1、mvn clean

调用clean生命周期的clean阶段,实际执行pre-clean和clean阶段

2、mvn test

调用default生命周期的test阶段,实际执行test以及之前所有阶段

3、mvn clean install

调用clean生命周期的clean阶段和default的install阶段,实际执行pre-clean和clean,install以及之前所有阶段

四、m2eclipse和生命周期

1、m2eclipse中预置的mvn命令

右键maven项目或pom.xml文件>Run As 可以看到预置的mvn命令

2、自定义mvn命令

单击 上图中的maven Build...,自定义命令 mvn clean install:

定义完成后,点击maven Build,可以看到定义好的命令:

maven项目右键快捷方式,然后点击Run As的更多相关文章

  1. eclipse 中maven项目右键没有maven菜单问题

    修改项目.project文件,确保有maven2Builder和maven2Nature2个标签: <?xml version="1.0" encoding="UT ...

  2. java Maven项目右键没有maven菜单项的解决方案!

    修改项目.project文件,确保有maven2Builder和maven2Nature2个标签: <?xml version="1.0" encoding="UT ...

  3. maven集成SSM项目,jetty部署运行——搭建maven项目部署jetty试运行(一)

    今天闲来没事采用maven集成一个SSM框架来复习复习,下面开始我的复习之旅,慢慢来,不着急,哈哈,不忙时候敲两下,整起来. 工具为Eclipse,首先需要建立一个maven工程,file右键new- ...

  4. 在Eclipse中编译maven项目出的问题

    在Eclipse中编译Maven项目,运行 jetty:run 指令的时候会出错,在 JRE选项卡中加入: -Dorg.mortbay.util.URI.charset=GBK-Xms512m -Xm ...

  5. MyEclipse中将普通Java项目convert(转化)为Maven项目

    在MyEclipse10中将Maven项目转成普通Java项目后,想将Java项目转成Maven项目,结果一下子傻眼了.根本就没有攻略中提到的config标签.仔细一看,喵咪的,人家用的是Eclips ...

  6. Maven问题总结:Eclipse中项目右键菜单中点击Maven->Update Projects时JDK被重置

    Eclipse中在项目右键菜单点击->Maven->Update Projects时,JDK总是切回 1.5 如果没有在Maven中配置过JDK版本,只是在Eclipse中项目的Prope ...

  7. 新建maven项目

    1.新建maven project 注意:勾上create a new simple project 2.填写相关信息, Grounp id为大项目名字,Artifact id为小项目的名字.注意:P ...

  8. 启动一个SpringBoot的maven项目

    ​ 最近拿到了一个maven项目,原先是使用.net开发的,虽然Java和C#的语法相近,但是难免还有一些差别,包括语言特性,IDE的使用方面,都需要一段时间的习惯和适应. ​ 该项目总体上是前后端分 ...

  9. maven项目(转)

    我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清楚,现在弄清楚了,基本上入门了.写该篇博文,就是为了帮助那些和我一样对于maven迷迷糊糊的人. ...

随机推荐

  1. EF上下文容器,保存线程唯一性

    在工作中有个疑问,就是EF上下文容器到底创建了多少个? 在asp.net中,EF上下文容器.如果只要有一个,则每次一个用户访问,添加一些实体,然后又不会自动销毁,就会造成内存爆炸.如果每次创建一个,则 ...

  2. navicat premiun连接mysql数据库报错,错误代码:1251

    今天在电脑上安装了Mysql 8.0.11,然后想用 Navicat Premium连接数据库,结果报错了: error 1251:client does not support authentica ...

  3. python练习六十三:文件处理,读取文件内容,按内容生成文件

    python练习六十三:文件处理 假设要读取code.txt文件中内容,code.txt文件内容如下 01 CN Chinese 02 US United States of America 03 J ...

  4. ArrayList中进行删除操作引发的问题

    1.普通for遍历 for(int i=0;i<list.size();i++){ if(list.get(i).equals("a")) list.remove(i); } ...

  5. [转]jQuery页面滚动图片等元素动态加载实现

    本文转自:http://www.zhangxinxu.com/wordpress/?p=1259 一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商 ...

  6. Linux平台命令挂载U盘——实现数据共享

    废话少说,一一道来,Linux中按照步骤来做就可以啦.(嵌入式平台) 1.先看看本地的mount信息 # mountrootfs on / type rootfs (rw)/dev/root on / ...

  7. MATLAB顺序结构程序和switch实现选择结构

    数据操作 (1)数据输入: A=input(提示信息,选项) (2)数据输出: disp(输出项) (3)程序暂停 pause(延迟秒数)若无内容,则需用户按任意键继续 3.2if语句 整非零为真 矩 ...

  8. 手机web前端调试页面的几种方式

    前言 PC端web页面调试比较容易,这里主要说几种移动端调试的方法,从简单到复杂.从模拟调试到远程调试,大概分为几部分: 1.Chrome DevTools(谷歌浏览器)的模拟手机调试 2.weinr ...

  9. java实现连接mysql数据库单元测试查询数据项目分享

    1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test;具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且 ...

  10. AutoResetEvent 2

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...