在某一个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. SpringBoot2.0.3整合Quartz2.3.0实现定时任务

    转载:https://www.cnblogs.com/ealenxie/p/9134602.html 关于别人写的quartz学习的地址:https://blog.csdn.net/lkl_csdn/ ...

  2. oracle service name connect

    oracle service name connect dest_ip=100.100.100.100 dest_port= dest_dbname=server_name connect=" ...

  3. (转)如何使用caffe的MATLAB接口

    编译MatCaffe 转自: http://blog.csdn.net/ws_20100/article/details/50525879 使用如下命令编译MatCaffe make all matc ...

  4. 创建有关hbase数据库的项目时所遇到的问题

    1.在以前使用其他数据库时,经常会使用id自增来做主键,但是hbase数据库中不知道怎么来设置自增主键,所以我打算不要id自增主键.然后删除原来的表,重新创建表. 删除表语句: 用drop命令可以删除 ...

  5. appium使用常见问题汇总--持续更新

    问题1:使用adb devices查看连接设备,提示unauthorized 解决方案:进入进程管理,关闭adb进程,然后再查看连接设备 问题2:adb connect ip提示远程计算机积极拒绝,无 ...

  6. [转]AngularJS 使用 UI Router 实现表单向导

    本文转自:http://www.oschina.net/translate/angularjs-multi-step-form-using-ui-router 今天我们将使用AngularJs和伟大的 ...

  7. [转]jQuery调用ASPX返回json

    本文转自:http://www.cnblogs.com/fire-phoenix/archive/2009/11/13/1614146.html 本文介绍如何在ASP.NET(ASP.NET/AJAX ...

  8. ASP.NET WebForm 之 Ajax 请求后端处理

    概述 ASP.NET MVC中的异步用途非常广泛,操作起来也非常简单.前台请求异步请求 Controller下的Action 方法,后端返回ActionResult 即可.但是在ASP.NET Web ...

  9. C#语言开发规范

    1.  命名规范 a) 类 [规则1-1]使用Pascal规则命名类名,即首字母要大写. eg: Class Test { ... } [规则1-2]使用能够反映类功能的名词或名词短语命名类. [规则 ...

  10. centos系统安装mysql

    方式一. 通过yum install mysql-server安装mysql服务器.chkconfig mysqld on设置开机启动,并service mysqld start启动mysql服务,并 ...