【问题标题】:Replacing -SNAPSHOT in pom when releasing发布时在pom中替换-SNAPSHOT
【发布时间】:2011-04-10 23:19:54
【问题描述】:

我正在与我的开发团队一起积极开发代码。当我们向客户发布时,我想提供没有 -SNAPSHOT 的 jar,因此他们只需要在创建新的 dot 版本时进行更新。

这里有一个提供此功能的 maven 插件。我知道这是因为其他人都必须以某种方式做到这一点。我怀疑它是手动的。

我希望答案尽可能明确。

请,谢谢。

【问题讨论】:

    标签: maven-2 continuous-integration


    【解决方案1】:

    一些插件可以在这里提供帮助,正如this answerthe comments of this one 中已经提到的那样:Maven Release Plugin 如果您想完全自动化发布和/或Maven Versions Plugin

    使用 Maven 发布插件

    使用Maven Release Plugin 发布项目分两步完成:prepareperform,以下是文档中关于release:prepare 目标的内容:

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

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

    换句话说,Maven Release Plugin 完全按照您的要求进行。

    使用 Maven 版本插件

    如果您不使用 Maven 发布插件,Maven Versions Plugin 可能会有所帮助。特别是以下目标:

    • versions:update-parent 更新 a 的父部分 项目,以便它引用 最新可用版本。例如, 如果您使用公司根 POM,则此 如果您需要,目标可能会有所帮助 确保您使用的是最新的 公司根 POM 的版本。
    • versions:update-child-modules 更新项目子模块的父部分,以便 版本匹配的版本 当前项目。 例如,如果您 有一个聚合器 pom 也是 它的项目的父级 聚合以及子级和父级 版本不同步,这魔力 可以帮助修复孩子的版本 模块。 (请注意,您可能需要调用 带有 -N 选项的 Maven 以 如果你的项目是运行这个目标 坏得无法建造 因为版本不匹配)。
    • versions:set可以用来设置项目版本 命令行。
    • versions:commit 删除 pom.xml.versionsBackup 文件。形式 内置“穷人”的一半 单片机”。
    • versions:revert 从 pom.xml.versions 备份文件。形式 内置“穷人”的一半 单片机”。

    我提到了几个目标,但“最”有趣的可能是versions:update-child-modules。它将允许更改顶级父 pom 中的版本,然后自动更新子级。示例见Fixing a multi-module build

    帮不上忙,您现在需要自己试验一下。祝你好运!

    参考文献

    【讨论】:

      猜你喜欢
      • 2014-10-07
      • 2018-05-16
      • 2014-06-19
      • 2015-02-13
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多