mvn clean install vs. deploy vs. release

时间:2010-09-07 16:48:47

标签: maven-2 continuous-integration

我只是在学习maven,最近我们需要越来越多。我想知道

之间的区别

mvn clean install

mvn release

mvn deploy

请尽可能具有描述性。

2 个答案:

答案 0 :(得分:199)

cleaninstalldeploy 阶段有效lifecycle phases,调用它们会触发它们之前的所有阶段和目标绑定到这些阶段。

  

mvn clean install

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

  • clean删除项目目录中构建时生成的文件(默认为target
  • install将软件包安装到本地存储库中,以用作本地其他项目的依赖项
  

mvn deploy

此命令调用deploy阶段:

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

mvn release

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

  

准备发布版即可通过   发布阶段之后:

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

然后:

  

执行发布会运行   发布阶段之后:

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

另见

答案 1 :(得分:24)

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

资源: