【问题标题】:Working with multiple maven projects and multiple branches使用多个 Maven 项目和多个分支
【发布时间】:2010-02-26 23:59:43
【问题描述】:

全部,

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

  1. Common-Test v1.0                              -> svn:repo/Common-Test/trunk
  2. Common-Core v3.1(取决于 1)     -> svn:repo/Common-Core/trunk
  3. PM-Web v3.1(取决于 2)             -> svn:repo/PM-Web/trunk

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

  1. 我应该简单地为每个项目创建一个分支并增加版本吗?我不这么认为,因为例如 Common-Test 可能不会改变,那么为什么要增加版本呢?
    但是,如果出于某种原因需要对 Common-Test 进行更改,那么我们可能会意外地在 v1.0 中进行更改,而不是创建新版本和新分支。
  2. 在 svn 中:我应该将 3 个项目分组到 1 个远程文件夹并创建该文件夹的分支吗?

这可能是常见的情况,所以我想知道那里有哪些程序......

谢谢,
斯蒂金

【问题讨论】:

    标签: svn maven-2 branch


    【解决方案1】:

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

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

    1. Common-Test v1.0 -> svn:repo/Common-Test/tags/common-test-1.0
    2. Common-Core 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. Common-Test v1.0.1 -> svn:repo/Common-Test/branches/common-test-1.x
    2. Common-Core v3.1(取决于 1)
    3. PM-Web v3.1.1(取决于 2)-> svn:repo/PM-Web/branches/pm-web-3.1.x

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

    并且下一个版本的开发发生在主干中(请注意,没有什么会迫使您对 Common-Test 的增量版本进行任何更改,也不会在不需要时发布它,但是因为您发布了以前的版本, 后备箱中的版本应该更改):

    1. Common-Test v1.1-SNAPSHOT -> svn:repo/Common-Test/trunk
    2. Common-Core v3.2-SNAPSHOT(取决于 1)-> svn:repo/Common-Core/trunk
    3. PM-Web v3.2-SNAPSHOT(取决于 2)-> svn:repo/PM-Web/trunk

    请注意,Maven Release Plugin 可以帮助自动执行这些步骤。

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

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

    【讨论】:

    • 帕斯卡,确实;并不是因为我为 Common-Test 创建了一个分支,所以我一定需要增加版本号。因此,我将为它创建一个分支,但仅在实际发生更改时才增加版本号。发送。
    • 我同意帕斯卡,如果你不需要,不要分支。
    • @Pascal Thivent 另一个很好的答案,我认为你回答了超过 80% 标记为 maven-2 的问题,并且接受的答案是
    • 是的,我也注意到了这一点。如果我有他的电子邮件地址,我会简单地将我的问题邮寄给他 ;-)。
    猜你喜欢
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2018-01-12
    • 2011-03-23
    相关资源
    最近更新 更多