1.情景展示

  选中maven项目,右键-->Run As或Debug As-->maven buid,maven install,maven test有什么区别?

2.区别说明

  6 Maven  clean-->执行的是maven的原生命令:

mvn clean

  表示:删除target目录。

  原目录结构存在target目录

  执行该命令后, target目录被删除。

  2018/11/14

  选中target目录-->右键-->刷新-->在windows资源管理器下打开该目录,你会发现class已经重新编译好

  注意:这不是mvn clean命令执行的只是清空target目录,classes文件之所以重新被编译,依赖于eclipse的自动编译功能!  

  7 Maven generate-sources-->执行的是maven的原生命令:

mvn generate-sources

  表示:会根据pom配置去生成源代码格式的包,产生应用需要的任何额外的源代码(没用过)

  8 Maven  install-->执行的是maven的原生命令:

mvn install

  表示:对项目进行编译、将项目打成war包并且发布到本地仓库。

  target目录说明:

  classes目录:.class,.properties,.xml文件;

  项目名目录:项目所有源码(前端、后台、jar包)

  项目名.war:将项目名目录打成的war包。

  生成的target目录展示

  安装到本地仓库的目录展示

  9 Maven  test-->执行的是maven的原生命令:

mvn test

  表示的是:对项目进行编译并执行测试代码。  

  生成的目录:

  5 Maven build...-->maven没有mvn buid命令

  表示的是:这是eclipse自带的mvn插件,通过这个功能,你可以自定义设置要执行的maven命令。

  用这个功能,我们能干什么?

  举2个栗子:

  案例一:

  因为maven在打包时,如果已经存在一个包时,再次执行打包命令时,如果不把原来的war包删除,经常会导致包没有更新;

  这时,我们就需要先清除该war包(执行clean命令对应eclipse中的Maven clean功能),再重新打包(执行package或install命令对应eclipse中的Maven install功能)。

  我们可以使用"Maven build"这个功能,在"Goals"一栏,输入命令:clean install,执行一次即可。

  案例二:

  对项目进行打包的时候,跳过单元测试。

  eclipse没有这个功能,只能通过自定义maven命令来实现,在Maven build...这个功能进行设置。

  示例一:打包并发布到本地仓库

  错误用法:不设置命令,直接run

  相当于maven命令:

mvn

  报错信息如下: 

  正确用法:输入 install

  示例二:打包时,跳过单元测试

  方式一:在上图勾选上“Skip Tests”

  使用这种方式:src/test/java和src/test/resources这两个目录下的文件不会被编译,自然不会被添加到编译好的项目当中。

  方式二:声明maven命令:“-DskipTests”

  使用这种方式: src/test/java和src/test/resources这两个目录下的文件依然会被编译,但不会被添加到编译好的项目当中。

  4 Maven build

  表示的是:执行已经定义好的maven命令。

  一个项目可以“Maven build...”功能定义n个maven命令,然后通过“Maven build”功能来执行想要执行的命令。

  Run Configurations...

  可通过这个功能,对已经自定义的maven命令进行新建、修改、运行、删除;

  如何删除多余的maven命令?

  选中不需要的maven命令,右键-->“删除”即可。

3.maven其它命令说明

mvn compile

  表示的是:对项目源代码进行编译。  

生成的目录:

mvn deploy

  表示的是:将项目发布到远程仓库。

mvn dependency:tree

  表示的是:显示maven依赖树。

mvn dependency:list

  表示的是:显示maven依赖列表。

mvn package

  表示的是:编译项目并打成war包。

  跳过单元测试的两种方式:

  方式一:

-DskipTests

  方式二:

-Dmaven.test.skip=true

  表示的是:测试类不会被编译,或即使被编译也不会被添加到项目当中。

  另外,这个指令没有先后顺序,均能正常执行。  

  举例: 以打包并发布到本地仓库时,跳过测试类为例。

// 方式一:形式一
mvn install -DskipTests
// 方式一:形式二
mvn -DskipTests install
// 方式二:形式一
mvn install -Dmaven.test.skip=true
// 方式二:形式二
mvn -Dmaven.test.skip=true install

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

 

eclipse maven build、maven clean、maven install和maven test的区别 精析的更多相关文章

  1. eclipse中build path与Web Deployment Assembly的作用,区别

    转自:https://blog.csdn.net/heart_mine/article/details/79402792 以下内容只为做个笔记记录已下,有问题可以留言,欢迎补充. 今天在eclipse ...

  2. idea工具maven生命周期clean,compile,install,package区别

    idea工具maven projects里面有9种生命周期,今天刚好遇到,顺便分享下自己的理解.生命周期是包含在一个项目构建中的一系列有序的阶段.最常用的两种打包方法:一:clean,package( ...

  3. Eclipse中配置Maven build打包

    Eclipse中配置Maven build打包 clean package

  4. eclipse maven 项目 maven build 无反应

    eclipse maven 项目 使用maven build ,clean 等命令均无反应,控制台无任何输出 1.打开Window --> Preferences --> Java --& ...

  5. eclipse中的maven build、maven clean、maven install和maven test的区别

    eclipse中的maven build.maven clean.maven install和maven test的区别 https://www.cnblogs.com/Marydon20170307 ...

  6. 转:eclipse maven build、maven install 等区别

    原文地址:eclipse maven build.maven install 等区别

  7. maven之clean、install命令

    1.进入到maven根目录,执行mvn compile命令会在根目录生成target文件(参照maven之helloworld案例),如下图: 2.执行mvn clean可将根目录下生成的target ...

  8. idea工具maven生命周期clean,install,package等区别

    idea工具maven projects里面有9种生命周期,生命周期是包含在一个项目构建中的一系列有序的阶段. 一.最常用的两种打包方法: 1.clean,package(如果报错,很可能就是jar依 ...

  9. IntelliJ IDEA教程之如何clean或者install Maven项目

    一.前言 Eclipse中如果我们想clean或者install工程,我们只需要右键工程,然后找到run->Maven install 或者run->Maven clean就可以了,但是I ...

随机推荐

  1. 一句话木马:PHP篇

    珍藏版: 一个简单的过D盾的免杀php <?php $ab = $_REQUEST['d']; $a['t'] = "";//主要带对象 D盾就不管后面的了... eval( ...

  2. 【RF库Collections测试】Remove From List

    Name:Remove From ListSource:Collections <test library>Arguments:[ list_ | index ]Removes and r ...

  3. Linux下的/proc目录介绍

    proc被称为虚拟文件系统,它是一个控制中心,可以通过更改其中某些文件改变内核运行状态, 它也是内核提空给我们的查询中心,用户可以通过它查看系统硬件及当前运行的进程信息. Linux中许多工具的数据来 ...

  4. linux 设置分辨率(转)

    linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...

  5. vs 2010中如何检查内存泄露

    首先,在文件头添加下面的内容: #ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else# ...

  6. HTML5实现图片预览功能

    两种方式实现 URL FileReader Index.jsp文件 <%@page contentType="text/html" pageEncoding="UT ...

  7. thinkphp3.2 实现上一篇和下一篇

    现在在做一个能够在内容页点击上一篇可以看到上一篇,点击下一篇可以看到下一篇. 首先http://www.mmkb.com/zhendao/index/news_show?code=98 现在code= ...

  8. WP8.1学习系列(第十二章)——全景控件Panorama开发指南

    2014/6/18 适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1 全景体验是本机 Windows ...

  9. Tomorrow Is A New Day

    Sometimes we do not feel like we want to feel     Sometimes we do not achieve what we want to achiev ...

  10. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')

    The constants for specifying the alpha channel information are declared with the CGImageAlphaInfo ty ...