eclipse maven build、maven clean、maven install和maven test的区别 精析
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的区别 精析的更多相关文章
- eclipse中build path与Web Deployment Assembly的作用,区别
转自:https://blog.csdn.net/heart_mine/article/details/79402792 以下内容只为做个笔记记录已下,有问题可以留言,欢迎补充. 今天在eclipse ...
- idea工具maven生命周期clean,compile,install,package区别
idea工具maven projects里面有9种生命周期,今天刚好遇到,顺便分享下自己的理解.生命周期是包含在一个项目构建中的一系列有序的阶段.最常用的两种打包方法:一:clean,package( ...
- Eclipse中配置Maven build打包
Eclipse中配置Maven build打包 clean package
- eclipse maven 项目 maven build 无反应
eclipse maven 项目 使用maven build ,clean 等命令均无反应,控制台无任何输出 1.打开Window --> Preferences --> Java --& ...
- eclipse中的maven build、maven clean、maven install和maven test的区别
eclipse中的maven build.maven clean.maven install和maven test的区别 https://www.cnblogs.com/Marydon20170307 ...
- 转:eclipse maven build、maven install 等区别
原文地址:eclipse maven build.maven install 等区别
- maven之clean、install命令
1.进入到maven根目录,执行mvn compile命令会在根目录生成target文件(参照maven之helloworld案例),如下图: 2.执行mvn clean可将根目录下生成的target ...
- idea工具maven生命周期clean,install,package等区别
idea工具maven projects里面有9种生命周期,生命周期是包含在一个项目构建中的一系列有序的阶段. 一.最常用的两种打包方法: 1.clean,package(如果报错,很可能就是jar依 ...
- IntelliJ IDEA教程之如何clean或者install Maven项目
一.前言 Eclipse中如果我们想clean或者install工程,我们只需要右键工程,然后找到run->Maven install 或者run->Maven clean就可以了,但是I ...
随机推荐
- 【Android】java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'JavaBridge'.
一.问题 Java调用JS事件出现 java.lang.RuntimeException: java.lang.Throwable: A WebView method was called on th ...
- mybayis 之resultType="map"
List<Map> publishInfos = memberShareMapper.shareToCouponCountGroupByPublishId(memberShare.getA ...
- nodeJs学习过程之认识nodejs
nodeJs只是听说过,没见过,没玩过.从新手开始,我想慢慢掌握它. 一.首先,我想知道nodeJs是什么? 摘自百度百科: Node.js是一套用来编写高性能网络服务器的JavaScript工具包, ...
- hive异常:创建MySQL时Specified key was too long; max key length is 1000 bytes
2015-11-13 14:44:44,681 ERROR [main]: DataNucleus.Datastore (Log4JLogger.java:error(115)) - An excep ...
- Linux下Apache网站目录读写权限的设置
网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定. 我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/w ...
- 使用kendynet构建异步redis访问服务
使用kendynet构建异步redis访问服务 最近开始在kendynet上开发手游服务端,游戏类型是生存挑战类的,要存储的数据结构和类型都比较简单,于是选择了用redis做存储,数据类型使用stri ...
- 【转载】经典.net面试题目【为了笔试。。。。。】
. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成员 ...
- Delphi应用程序的调试(五)其他调试工具
Delphi应用程序的调试(五)其他调试工具 Delphi7中提供了一些附加调试工具来帮助用户检查程序错误.从性能上讲,其中一些工具属于高级调试工具.尽管高级调试工具不像其他工具那样常用,但对于经验丰 ...
- WPS 2019 去除自动升级 和 广告、及优化的点
搜狗输入法 里面的快捷键会影响wps的快捷键功能,需要关掉"搜狗输入法"里面的快捷键 1. 2.去除自动升级功能 3.去除 广告 WPS 2019 流程图(断网): 思维导图: 流 ...
- LeetCode 24 Swap Nodes in Pairs (交换相邻节点)
题目链接: https://leetcode.com/problems/swap-nodes-in-pairs/?tab=Description Problem: 交换相邻的两个节点 如上 ...