每天一个面试知识点Java(7) maven 中clean package install和deploy有什么区别

序言

  maven 同学们在开发中 中clean package install 这个大多数人在项目实际开发中会用到,deploy 可能是leader 或者写框架的同学才用到。比如一个功能写完 大家可能跟我一样用idea 写完代码然后Run项目,但是有时候项目不行,然后就一顿操作 clean、package、install。有没有仔细的想过 为啥我们要这么操作,为啥操作后能代码就正常运行了?很多同学肯定与运维有些交集,你偶尔也能看到他们手动帮你部署测试环境,或者看到自动化部署中的配置mvn clean package, 这应该是运维用的是最多的,他们之间有什么区别?
下面我就跟同学们一起好好说道一下。

作用

每个事物都有生命周期,maven操作也不例外,我们先讲一下生命周期。
第一阶段(Clean Lifecycle)在进行真正的构建之前进行一些处理工作 ,指令 mvn clean
第二阶段(Default Lifecycle)构建的核心部分,编译,测试,打包,部署等 ,指令 mvn validate,compile,test,package,install deploy。
第三阶段(Default Lifecycle)生成项目报告,站点,发布站点 这一点对于大多数同学来说用的很少。

我们今天主要看我们经常用的4个指令

  • mvn clean: 清除本地本项目的target下内容。
  • mvn package:打包(jar等)到本项目的target下 。
  • mvn install:把target下打的包(jar等)安装到本地仓库,可以供其他项目使用。
  • mvn deploy:将打包的文件发布到远程仓库(所谓的私服),提供其他人员进行下载依赖。

1.用mvn install后,新改的内容不生效,一定要后来使用mvn clean install 才生效。
maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 compile , package , test 等。而执行mvn package 会调用 maven-jar-plugin 这个插件进行打包,理论上来讲不做mvn clean得到的jar包应该是最新的,然而在打包结束后修改了代码内容,导致打出来的jar包没有更新,从而没有生效,所以使用mvn clean install对target文件清除后再进行打包。

详细视频操作https://www.bilibili.com/video/BV1Ha411j7rY/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值