mvn全新安装与部署与发布


132

我只是在学习Maven,最近我们需要做的越来越多。我想知道两者之间的区别

mvn clean install

mvn release

mvn deploy

请尽量描述。

Answers:


223

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

mvn全新安装

此命令先调用clean阶段,然后install依次调用阶段:

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

mvn部署

此命令调用deploy阶段:

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

mvn发布

这既不是有效阶段,也不是目标,因此它不会做任何事情。但是if是指用于自动执行版本管理的Maven版本插件。发布项目分两个步骤:prepareperform。根据记录:

准备发行需要经历以下发行阶段:

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

然后:

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

  • 从带有可选标签的SCM URL检出
  • 运行预定义的Maven目标以发布项目(默认情况下,部署site-deploy)

也可以看看


1
您能否澄清一下: 这不是有效阶段,也不是目标,因此它不会做任何事情。但是if指的是Maven版本插件。如果既不是阶段也不是目标,那么我们怎么称呼它呢?
gvlasov

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

资源:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.