Maven中mvn deploy与mvn install+mvn deploy:deploy是否等效?
能否用
mvn deploy:deploy替代mvn deploy? 答案是不能完全等价替换,两者的核心差异正如你提到的JFMeier的结论,我再展开解释得更清楚一点:
核心区别
mvn deploy:这是触发Maven完整的deploy生命周期阶段。它会执行从validate到deploy的所有生命周期阶段(不过你已经先执行了mvn install,所以实际会从install之后的阶段开始),并且会运行所有绑定到deploy阶段的插件目标——除了maven-deploy-plugin自带的deploy任务之外,可能还有其他自定义插件、镜像同步插件、报告生成插件等被绑定到这个阶段,这些都会被执行。mvn deploy:deploy:这只是单独调用maven-deploy-plugin的deploy目标,完全不会触发任何绑定到deploy生命周期阶段的其他插件任务。
回到你的场景
如果你原来的mvn deploy -Dskip.all.possible.stuff.so是为了尽可能跳过非必要的步骤,那换成mvn deploy:deploy确实能达到更极致的“仅部署构件”的效果,但你需要确认:你的项目中是否有其他插件绑定到了deploy阶段?比如有些项目会在deploy阶段同步构件到私有镜像仓库的备份节点,或者生成部署报告,如果有这些任务,用deploy:deploy就会跳过它们,导致流程不完整。
如果你的项目里deploy阶段只有maven-deploy-plugin的任务,那替换后效果一致,但只要有其他绑定的插件,两者就会有差异。
内容的提问来源于stack exchange,提问作者Chirlo
相关产品推荐
相关产品推荐

