【问题标题】:Do you really need to version the trunk of a maven project?你真的需要对 maven 项目的主干进行版本控制吗?
【发布时间】:2014-06-25 23:58:55
【问题描述】:

在基于主干的开发分支模型中,您在主干上开发并从分支发布,每个版本都需要更新主干和新分支中的 POM 文件。

比如trunk中的版本设置为1.0-SNAPSHOT,release分支需要更新为1.0,trunk为1.1-SNAPSHOT。

我真的想要一种替代策略来排除更新主干上的版本的需要,以及与之相关的所有相关任务。考虑一下,您实际上不需要将版本号应用于主干。版本号仅在发布过程中真正变得相关,但 Maven(出于多种原因)需要版本号。

作为替代方案,我们可以将主干上的版本设置为 0.0-SNAPSHOT,这本质上表示特殊版本。但问题在于,就 Maven 而言,它会将其置于所有其他版本之前。

另一种方法可能是使用一些非常大的数字。这至少会在每个其他版本之后,如果主干代表您的开发的尖端,这是正确的。不过这感觉有点武断。

我能看到的唯一其他选项是使用字符串版本 - 例如HEAD 或 LATEST,但这不符合最新的 Maven 版本控制方案。除了失去 SNAPSHOT 功能外,我相信整数版本将始终被认为比字符串更新(请参阅here)。

所以,

  1. 这个理论听起来合理吗?
  2. 如果是这样,是否有更好的策略?

【问题讨论】:

    标签: maven version-control maven-3 branching-strategy


    【解决方案1】:

    如果您愿意,可以简单地使用 TRUNK-SNAPSHOT。这为您提供了具有静态“版本”的“最新”分辨率。

    【讨论】:

    • 我认为这是最好的。保留 SNAPSHOT 标签周围的功能非常有帮助;丢失正确的序数比较器,因为整数版本总是被认为比字符串更新,并不是特别有害。
    猜你喜欢
    • 2023-02-11
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2015-03-08
    • 2021-11-15
    相关资源
    最近更新 更多