理解maven命令package、install、deploy的联系与区别

理解maven命令package、install、deploy的联系与区别  我们在用maven构建java项目时,最常用的打包命令有mvnpackage、mvninstall、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。mvncleanpackagemvncleaninstallm…

大家好,又见面了,我是你们的朋友全栈君。

鄙人的新书《Elasticsearch权威指南》正式出版发行,欢迎购买!本书由华为、中兴高级技术专家全面审读并撰序,助您挑战百万年薪 购书链接: 在这里插入图片描述

《Elasticsearch权威指南》

欢迎关注鄙人公众号,技术干货随时看!
在这里插入图片描述

技术交流qq群: 659201069

鄙人的新书《elasticsearch7完全开发指南》,欢迎订阅!

https://wenku.baidu.com/view/8ff2ce94591b6bd97f192279168884868762b8e7

《kibana权威指南》

https://wenku.baidu.com/view/24cfee1ce43a580216fc700abb68a98270feac21

我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。

mvn clean package

这里写图片描述这里写图片描述

mvn clean install

这里写图片描述这里写图片描述

mvn clean deploy(忽略最后的BUILD FAILURE)

这里写图片描述这里写图片描述

通过三个命令的输出我们可以看出三者的区别在于包函的maven生命的阶段和执行目标(goal)不同。在我的上一篇文章https://blog.csdn.net/zhaojianting/article/details/80321488 中介绍了maven的生命周期和各种插件,不明白的请参考此博文。maven生命周期(lifecycle)由各个阶段组成,每个阶段由maven的插件plugin来执行完成。生命周期(lifecycle)主要包括clean、resources、complie、install、pacakge、testResources、testCompile、deploy等,其中带test开头的都是用业编译测试代码或运行单元测试用例的。

仔细查看上面的输出结果截图,可以发现,

  • mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
  • mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
  • mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

由上面的分析可知主要区别如下,

  • package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
  • install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
  • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130327.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月14日 下午2:16
下一篇 2022年6月14日 下午2:16


相关推荐

  • Java把string转json格式_java实体类转json字符串

    Java把string转json格式_java实体类转json字符串做项目时遇到一个错误:其实这个错误也是一种广义的序列化错误,指将对象转换为JSON格式的字符串出现异常;狭义的序列化指:将对象转换为字节反序列化指:将字节转换成对象★Java对象—–>JSON格式字符串用到的API:1.先new一个ObjectMapper对象ObjectMapperom=newObjectMapper();StringjsonStr=om.writeValueAsString(传入java对象);System.ou..

    2025年11月26日
    4
  • 透明色Opacity属性的使用

    透明色Opacity属性的使用Opacity属性:值 描述 value 指定不透明度。从0.0(完全透明)到1.0(完全不透明) inherit Opacity属性的值应该从父元素继承 代码:<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>Title</title><style>i

    2022年5月26日
    47
  • shiro框架使用_shiro配置

    shiro框架使用_shiro配置一、什么是ShiroApacheShiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能:认证-用户身份识别,常被称为用户“登录”;授权-访问控制;密码加密-保护或隐藏数据防止被偷窥;会话管理-每用户相关的时间敏感的状态。对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。二

    2025年10月3日
    5
  • 中标麒麟和centos区别_中标麒麟debian

    中标麒麟和centos区别_中标麒麟debian首先参考网上常见的CentOS如何本地yum安装软件的:(后面是中标麒麟)1、首先进行光盘的挂载,注意光盘挂载时不会自动建立目录的,所以需要自己建立目录mkdir/mnt/cdrommount/dev/cdrom/mnt/cdrom#dev目录为设备目录2、更改本地源地址cd/etc/yum.repos.d/#可以看见CentOS-Base.repo和Cen…

    2022年8月10日
    251
  • MongoDB获得短暂的

    MongoDB获得短暂的

    2021年12月17日
    48
  • clion激活码 2021.4.14_通用破解码

    clion激活码 2021.4.14_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    188

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号