eclipse maven build、maven clean、maven install和maven test的区别 精析

时间:2022-08-31 21:30:26
 
 
 

1.情景展示

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

2.区别说明

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

mvn clean

  表示:删除target目录。

  原目录结构存在target目录

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

  2018/11/14

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

  注意:这不是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目录展示

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

mvn test

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

  生成的目录:

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

  举2个栗子:

  案例一:

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

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

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

  案例二:

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

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

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

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

  相当于maven命令:

mvn

  报错信息如下: 

eclipse maven build、maven clean、maven install和maven test的区别 精析

  正确用法:输入 install

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

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

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

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

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

  4 Maven build

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

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

  Run Configurations...

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

  如何删除多余的maven命令?

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

3.maven其它命令说明

mvn compile

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

生成的目录:

eclipse maven build、maven clean、maven install和maven test的区别 精析

mvn deploy

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

mvn dependency:tree

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

mvn dependency:list

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

mvn package

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

eclipse maven build、maven clean、maven install和maven test的区别 精析

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

  方式一:

-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. ZOJ Problem Set - 1049 I Think I Need a Houseboat

    这道题目说白了是一道平面几何的数学问题,重在理解题目的意思: 题目说,弗雷德想买地盖房养老,但是土地每年会被密西西比河淹掉一部分,而且经调查是以半圆形的方式淹没的,每年淹没50平方英里,以初始水岸线为 ...

  2. Nodejs开源项目推荐

    当我们学习一门新语言,不要用以前语言的习惯去使用新的语言,这样可能会导致走一些弯路.最好的办法就是去看一些写的比较好的开源项目,所以这里我推荐几个NodeJs的开源项目,花点时间去研究一下他们的实现, ...

  3. Effective Java 04 Enforce noninstantiability with a private constructor

    A class can be made noninstantiable by including a private constructor. // Noninstantiable utility c ...

  4. (四)JAVA使用POI操作excel

    1,字体处理 Demo12.java package com.wishwzp.poi; import java.io.FileOutputStream; import org.apache.poi.h ...

  5. Markdown 简单语法

    标题 文本前面加上 '#' 和一个空格 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 加粗 文本两侧加上 '**' 加粗文本 斜体 文本两侧加上 '*' 斜体文本 斜体加粗 文本两侧加上 ...

  6. String、StringBuilder、StringBuffer 区别

    public static void testStringBuffer(){ long start System currentTimeMillis(); StringBuffer sbuf = ne ...

  7. 这不是我想要的ABAP开发者

    原文在此: These Aren’t the Developers You’re Looking for 在吃饼干的过程中偶然看到这篇文章,立刻被UC化的标题吸引到了. 全文读完,感觉作者还是有点刻薄 ...

  8. 转---一文读懂 python 的元类

    译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得 ...

  9. SQL到NoSQL概览性总结之一 数据库应用场景选型

    数据库类型与实例 适合场景 不适合场景 场景举例 关系数据库 基于集合理论,具有行和列的二维表,严格使用类型 开源MySQL/MariaDB, PostgreSQL 商业:Oracle,DB2,SQL ...

  10. 【WPF】代码触发Button点击事件

    先定义Button按钮并绑定事件. public void test() { Button btn = new Button(); btn.Click += Btn_Click; } private ...