代码之家  ›  专栏  ›  技术社区  ›  Stijn Geukens

处理多个Maven项目和多个分支

  •  2
  • Stijn Geukens  · 技术社区  · 14 年前

    所有,

    目前我有以下Maven项目都存储在SVN中:

    1. 普通测试v1.0 160;_____________->SVN:回购/普通测试/中继
    2. 通用核心v3.1(取决于1)->svn:repo/common core/trunk
    3. PM Web v3.1(取决于2)_______->SVN:repo/PM Web/Trunk

    现在,我需要创建一个分支,因为v3.1安装在生产环境中,我们希望开始开发v4.0。我不确定他是处理这件事的最佳方法:

    1. 我应该简单地为每个项目创建一个分支并增加版本吗?我不这么认为,因为例如,公共测试可能不会改变,那么为什么要增加版本呢?
      但是,如果出于某种原因需要更改通用测试,那么存在的危险是我们无意中在v1.0中进行了更改,而不是创建新版本和新分支。
    2. 在SVN中:我应该将3个项目分组为1个远程文件夹并创建该文件夹的分支吗?

    这可能是常见的情况,所以我想知道外面有哪些程序…

    谢谢,
    斯泰恩

    1 回复  |  直到 14 年前
        1
  •  3
  •   Pascal Thivent    14 年前

    我应该简单地为每个项目创建一个分支并增加版本吗?

    确实很接近。因为您已经发布了PM Web项目(及其依赖项),所以您需要获取一个“快照”(以防您需要更改内容),我会 标签 要执行的每个项目(如果不需要,请不要分支):

    1. 公共测试v1.0->svn:repo/common test/tags/common-test-1.0
    2. 通用核心v3.1(取决于1)->svn:repo/common-core/tags/common-core-3.1
    3. pm web v3.1(取决于2)->svn:repo/pm web/tags/pm-web-3.1

    POM中的所有内容都相应地更新了(版本、SCM、依赖项中的版本等)。

    如果以后需要在发布的版本上修复某些问题,请从标记的版本创建一个分支,例如

    1. 公共测试v1.0.1->svn:repo/common test/branches/common-test-1.x
    2. 普通芯v3.1(取决于1)
    3. pm web v3.1.1(取决于2)->svn:repo/pm web/branches/pm-web-3.1.x

    在分支中进行修复并发布新版本(并重新标记)。

    下一个版本的开发发生在主干中(请注意,任何情况下都不会强制您对公共测试的增量版本进行任何更改,也不会强制您在不需要的情况下发布它,但是由于您发布了前一个版本,主干中的版本应该更改):

    1. 公共测试v1.1-快照->svn:repo/common test/trunk
    2. 公共核心v3.2-快照(取决于1)->svn:repo/common core/trunk
    3. pm web v3.2-快照(取决于2)->svn:repo/pm web/trunk

    供您参考, Maven Release Plugin 可以帮助自动化这些步骤。

    在SVN中:我应该将3个项目分组为1个远程文件夹并创建该文件夹的分支吗?

    我不这么认为。您的项目似乎具有独立的生命周期,因此我认为为它们提供独立的模块(即具有独立主干/标记/分支的独立层次结构)是有意义的。