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

作者:阿童木-atom 时间:2022-08-09 05:11:39 

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

mvn clean package

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

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

mvn clean install

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

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

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

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

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

通过三个命令的输出我们可以看出三者的区别在于包函的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://blog.csdn.net/zhaojianting/article/details/80324533

标签:maven,package,install,deploy
0
投稿

猜你喜欢

  • java中将一个List等分成n个list的工具方法(推荐)

    2022-04-12 09:25:09
  • 关于Struts2文件上传与自定义拦截器

    2021-10-31 12:52:44
  • Winform下实现图片切换特效的方法

    2023-04-20 21:26:28
  • java 对象参数去空格方式代码实例

    2023-11-27 09:49:34
  • C#中ref和out的区别浅析

    2021-12-22 23:00:50
  • 为什么入门大数据选择Python而不是Java?

    2022-04-01 00:14:46
  • spring boot使用自定义的线程池执行Async任务

    2023-08-15 07:41:25
  • 常见JavaWeb安全问题和解决方案

    2023-11-09 01:02:17
  • Java Spring @Lazy延迟注入源码案例详解

    2023-06-24 05:21:07
  • Mybatis批量插入index out of range错误的解决(较偏的错误)

    2022-06-11 01:11:51
  • Kotlin扩展方法超详细介绍

    2023-05-31 16:31:23
  • Mybatis通过Spring完成代理类注入的流程分析

    2023-10-25 00:55:55
  • android TextView设置中文字体加粗实现方法

    2023-08-06 02:32:03
  • Mybatis Plus代码生成器(时间管理大师)

    2023-01-30 16:27:35
  • SpringCloud服务注册和发现组件Eureka

    2023-10-26 06:07:51
  • Java 的可变参数方法详述

    2022-06-03 19:12:34
  • Android异步下载图片并且缓存图片到本地DEMO详解

    2022-10-27 14:16:17
  • C#实现Word和ODT文档相互转换详解

    2022-12-17 21:36:47
  • JAVA并发中VOLATILE关键字的神奇之处详解

    2021-08-15 01:51:38
  • 详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    2021-11-18 12:18:05
  • asp之家 软件编程 m.aspxhome.com