gpt4 book ai didi

maven - 使用 maven、teamcity 和 TFS 的分支策略

转载 作者:行者123 更新时间:2023-12-03 17:57:46 24 4
gpt4 key购买 nike

我的任务是立即更新我们的构建过程以提高效率,我花了一周时间阅读最佳实践和策略,但我仍然没有找到解决我们当前问题的方法。

背景

目前我们有一个整体构建/应用程序,它确实需要分成至少 4 个应用程序和一些共享库。除非绝对必要,否则我们目前不分支。我们有一个基于每次 checkin TFS 的 teamcity 构建。当我们准备好发布时,我们会卡住代码,并且只 checkin 修复在 QA 中发现的错误。显然这是一种糟糕的做法,我们终于获得了改变它的批准。

建议的解决方案

提议的解决方案将是拆分应用程序并为每个应用程序设置不同的发布周期,从 ant 迁移到 maven,并在每个版本中进行分支。

分支 - 现在我们在源代码控制中只有一个主干。我认为当我们准备好发布时,我们希望分支出主干,并更新分支以查找在 QA 中发现的错误。当构建准备好发布时,将分支更改合并回主干。

这是我计划设置 TFS 的方式。

+Apps
+App1
+Components
+Core
+Web
+Branches
+App2
+Components
+Core
+Web
+Branches
+Libraries
+Lib1
+Lib2
+Branches

现在考虑管理所有 POM 和 POM 中的版本似乎太困难了。我已经阅读了 maven 发布插件,但我不确定它是否可以按照我认为我们想要的方式进行分支。

下一个问题是让 teamcity 工作。我正在考虑为每个应用程序创建 3 个 teamcity 项目。一个始终指向主干的开发项目,一个用于测试 QA 构建的 QA 项目和一个用于构建修补程序更改的生产项目。每次 QA 发布新版本时,我都必须更新 QA teamcity 项目以指向新的发布分支并更新 teamcity 中的发布版本号。当该版本通过 QA 时,我必须更新生产 teamcity 项目以指向刚刚通过 QA 的分支并将内部版本号更新为刚刚通过 QA 的内部版本号。

当然,还有比这更好的策略。

问题

我应该把这些分支文件夹放在哪里?

在构建进入预生产之前,QA 构建是否应该仍然是快照?

您如何配置 teamcity 以在不更改每个版本的源路径的情况下获取这些分支?

每个应用程序是否应该有父 POM,开发人员使用这些 POM 来确保他们的所有依赖项都已编译并且是最新的?

最佳答案

我只是想质疑您的想法,即您的应用程序应该处于不同的发布周期。模块化对于代码质量来说是一件好事,但如果您的模块处于不同的发布周期,则会引入大量开销。特别是,版本管理成为一个相当大的负担,如果你弄错了,你可能会引入运行时错误。

这些单独的应用程序如何相互关联?它们之间是否存在依赖关系(可能通过共享库)?他们互相交流吗?它们是一起部署的吗?

如果没有必要将它们放在单独的发布周期中,那么最好将它们放在一起。

关于maven - 使用 maven、teamcity 和 TFS 的分支策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com