【问题标题】:mvn clean install vs. deploy vs. releasemvn clean install vs. deploy vs. release
【发布时间】:2011-04-09 07:31:19
【问题描述】:

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

mvn clean install

mvn release

mvn deploy

请尽可能描述性。

【问题讨论】:

    标签: maven-2 continuous-integration


    【解决方案1】:
    • mvn install 会将您打包的 maven 项目放入 local 存储库,供本地应用程序使用您的项目作为依赖项。
    • mvn release 基本上会将您当前的代码放在 SCM 上的标签中,在您的项目中更改您的版本。
    • mvn deploy 会将您打包的 maven 项目放入 remote 存储库,以便与其他开发人员共享。

    资源:

    【讨论】:

    • 如果我在每个命令上都加上 clean 会有什么影响?可以说, mvn clean install 然后执行另一个命令 mvn clean deploy?会一样吗?
    【解决方案2】:

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

    mvn 全新安装

    此命令依次调用clean 阶段和install 阶段:

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

    mvn 部署

    此命令调用deploy 阶段:

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

    mvn 发布

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

    准备发布需要经过 以下发布阶段:

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

    然后:

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

    • 从带有可选标签的 SCM URL 结帐
    • 运行预定义的 Maven 目标以发布项目(默认情况下, 部署站点部署)

    另见

    【讨论】:

    • 你能否澄清一下:这不是一个有效的阶段,也不是一个目标,所以这不会做任何事情。但是if指的是Maven Release Plugin。如果它既不是阶段也不是目标,那我们怎么称呼它呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 2018-07-03
    • 2014-03-30
    • 2011-08-26
    • 2013-05-12
    相关资源
    最近更新 更多