使用多个maven项目和多个分支

时间:2010-02-26 14:52:46

标签: svn maven-2 branch

所有

目前我有以下所有存储在svn中的maven项目:

  1. Common-Test v1.0 - >的svn:回购/共测试/中继线
  2. Common-Core v3.1(取决于1) - >的svn:回购/普通核/中继线
  3. PM-Web v3.1(取决于2) - >的svn:回购/ PM的Web /中继线
  4. 现在,我需要创建一个分支,因为v3.1已在生产中安装,我们希望开始v4.0的开发。我不确定他处理这个问题的最佳方法:

    1. 我应该简单地创建每个项目的分支并增加版本吗?我不这么认为,因为例如Common-Test可能不会改变,所以为什么增加版本?
      但是,如果由于某种原因需要改变共同测试,那么我们就会意外地在v1.0中进行更改,而不是创建新版本和新分支。
    2. 在svn中:我应该将3个项目分组到1个远程文件夹并创建该文件夹的分支吗?
    3. 这可能是常见的情况所以我想知道哪些程序在那里......

      感谢,
      斯泰恩

1 个答案:

答案 0 :(得分:3)

  

我应该只创建每个项目的分支并增加版本吗?

确实很接近。由于您已经发布了PM-Web项目(及其依赖项),您需要拍摄一个“快照”(如果您需要更改内容),我会标记每个项目这样做(不要)如果你不需要分支:

  1. Common-Test v1.0 - >的svn:回购/共测试/标签/共测试-1.0
  2. Common-Core v3.1(取决于1) - >的svn:回购/普通核/标签/普通核 - 3.1
  3. PM-Web v3.1(取决于2) - > SVN:回购/ PM的Web /标签/ PM的web-3.1
  4. 随着POM中的所有内容相应更新(版本,scm,依赖版本等)。

    如果稍后您需要修复已发布版本的内容,请从标记版本创建分支,例如

    1. Common-Test v1.0.1 - >的svn:回购/共测试/支链/共测试-1.x的
    2. Common-Core v3.1(取决于1)
    3. PM-Web v3.1.1(取决于2) - > SVN:回购/ PM-网络/分支机构/ PM网络3.1.X
    4. 在分支机构中进行修复并发布新版本(并重新标记)。

      下一个版本的开发发生在主干中(请注意,没有任何东西强迫您在增加版本的Common-Test中进行任何更改,如果您不需要,也不会释放它,但是因为您发布了以前的版本,应该更改主干中的版本):

      1. Common-Test v1.1-SNAPSHOT - >的svn:回购/共测试/中继线
      2. Common-Core v3.2-SNAPSHOT(取决于1) - >的svn:回购/普通核/中继线
      3. PM-Web v3.2-SNAPSHOT(取决于2) - >的svn:回购/ PM的Web /中继线
      4. 有关您的信息,Maven Release Plugin可以帮助您自动执行这些步骤。

          

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

        我不这么认为。你的项目似乎已经分开了生命周期,所以在我看来,为他们建立单独的模块(即单独的层次结构和单独的主干/标签/分支)是有意义的。