mvn clean install vs. deploy vs. release

myu*_*uf3 117 continuous-integration maven-2

我只是在学习maven,最近我们需要越来越多.我想知道它们之间的区别

mvn clean install

mvn release

mvn deploy

请尽可能描述.

Pas*_*ent 211

clean,installdeploy 阶段是有效的生命周期阶段,并调用它们会引发之前的所有这些阶段,并绑定到这些阶段的目标.

mvn clean install

此命令按顺序调用clean阶段然后调用install阶段:

  • clean: 删除项目目录中生成时生成的文件(target默认情况下)
  • install:将程序包安装到本地存储库中,以用作本地其他项目的依赖项.

mvn部署

此命令调用deploy阶段:

  • deploy:将最终包复制到远程存储库以与其他开发人员和项目共享.

mvn发布

这不是一个有效的阶段,也不是一个目标,所以这不会做任何事情.但是如果指的是用于自动化发布管理的Maven Release Plugin.发布项目分两步完成:prepareperform.记录如下:

准备发布版将经历以下发布阶段:

  • 检查源中没有未提交的更改
  • 检查是否没有SNAPSHOT依赖项
  • 将POM中的版本从x-SNAPSHOT更改为新版本(系统将提示您输入要使用的版本)
  • 转换POM中的SCM信息以包括标签的最终目的地
  • 针对修改后的POM运行项目测试,以确认一切正常
  • 提交修改后的POM
  • 使用版本名称标记SCM中的代码(将提示)
  • 将POM中的版本转换为新值y-SNAPSHOT(也会提示这些值)
  • 提交修改后的POM

然后:

执行发布会运行以下发布阶段:

  • 使用可选标记从SCM URL签出
  • 运行预定义的Maven目标以释放项目(默认情况下,部署站点部署)

也可以看看

  • 非常清晰简洁的答案.谢谢. (4认同)
  • 你能澄清一下吗:*这不是一个有效的阶段,也不是一个目标,所以这不会做任何事情。但是如果指的是Maven Release Plugin。* 如果它既不是一个阶段也不是一个目标,那我们怎么称呼它呢? (2认同)

Col*_*ert 25

  • mvn install将您的打包maven项目放入本地存储库,使用您的项目作为依赖项进行本地应用程序.
  • mvn release 将基本上将您当前的代码放在SCM上的标签中,更改项目中的版本.
  • mvn deploy将您的打包maven项目放入远程存储库以与其他开发人员共享.

资源: