mvn clean install vs. deploy vs. release
Posted
技术标签:
【中文标题】mvn clean install vs. deploy vs. release【英文标题】: 【发布时间】:2011-04-09 07:31:19 【问题描述】:我只是在学习maven,最近我们需要越来越多。我想知道
mvn clean install
mvn release
mvn deploy
请尽可能描述性。
【问题讨论】:
【参考方案1】:mvn install
会将您打包的 maven 项目放入 local 存储库,供本地应用程序使用您的项目作为依赖项。
mvn release
基本上会将您当前的代码放在 SCM 上的标签中,在您的项目中更改您的版本。
mvn deploy
会将您打包的 maven 项目放入 remote 存储库,以便与其他开发人员共享。
资源:
Maven install plugin Maven release plugin Maven deploy plugin【讨论】:
如果我在每个命令上都加上 clean 会有什么影响?可以说, mvn clean install 然后执行另一个命令 mvn clean deploy?会一样吗?【参考方案2】:clean
、install
和deploy
阶段 是有效的lifecycle phases,调用它们将触发它们之前的所有阶段,以及绑定到这些阶段的目标。
mvn 全新安装
此命令依次调用clean
阶段和install
阶段:
clean
:删除项目目录中构建时生成的文件(默认为target
)
install
:将包安装到本地存储库中,用作本地其他项目的依赖项。
mvn 部署
此命令调用deploy
阶段:
deploy
:将最终包复制到远程存储库,以便与其他开发人员和项目共享。
mvn 发布
这不是一个有效的阶段,也不是一个目标,所以这不会做任何事情。但如果指的是用于自动化发布管理的Maven Release Plugin。发布项目分两步完成:prepare
和 perform
。据记载:
准备发布需要经过 以下发布阶段:
检查源中没有未提交的更改 检查是否没有 SNAPSHOT 依赖项 将 POM 中的版本从 x-SNAPSHOT 更改为新版本(您 将提示您输入的版本 使用) 转换 POM 中的 SCM 信息以包含最终 标签的目的地 针对修改后的 POM 运行项目测试,以确认一切正常 工作正常 提交修改后的 POM 在单片机代码中打上版本名称(会提示 为) 将 POM 中的版本添加到新值 y-SNAPSHOT(这些值 也会被提示) 提交修改后的 POM
然后:
执行发布会运行 以下发布阶段:
从带有可选标签的 SCM URL 结帐 运行预定义的 Maven 目标以发布项目(默认情况下, 部署站点部署)
另见
Introduction to the Build Lifecycle The Maven Release Plugin【讨论】:
你能否澄清一下:这不是一个有效的阶段,也不是一个目标,所以这不会做任何事情。但是if指的是Maven Release Plugin。如果它既不是阶段也不是目标,那我们怎么称呼它呢?以上是关于mvn clean install vs. deploy vs. release的主要内容,如果未能解决你的问题,请参考以下文章
“mvn clean install”和“mvn clean verify install”有啥区别?
“mvn clean install”与“mvn install”有何不同?
mvn clean package install deploy