3

是否有工具可以在 Maven 项目/SCM 场景中实现以下抽象操作?

  • 给定一个应用程序项目,为应用程序和它使用的所有快照库创建分支,传递;这些分支应该作为一个逻辑分支进行管理(见下)
  • 给定应用项目的逻辑分支,发布它(通过运行 Maven 发布);这意味着发布多个分支,每个库一个

背景(原件):

如您所知,Git 建议使用每个项目的存储库结构范式。同时,任何严肃的项目,在我们的例子中是基于 Maven 的,都附加到几个内部库。在任何 sprint 中,项目和它所附加的库都会被修改。在 Git 世界中,这意味着修改将存在于多个 Git 存储库中。

如果我们想在 sprint 中扩展工作,可能是因为我们使用 Gitflow,它会邀请我们在 sprint 结束时创建一个发布分支,我们将如何在 sprint 中涉及的所有库中以合乎逻辑的方式进行,而不是手动分支每个库?

一个 Maven 感知工具(一个可以自省 POM 以找出传递快照依赖列表的工具)会更好。

我可以在代表我的一个逻辑分支的多个物理分支(每个项目一个)之间创建逻辑关系吗?

Git 或某些 Git 工具是否支持逻辑分支?

我希望你不要说子模块。我在这里寻找的是抽象出 VCS 的细节,而不是成为 Git 大师。另外,我希望尽可能在一个操作中做一些事情,因为必须单独分支每个库很容易出错并且很容易被遗忘。

4

2 回答 2

1

设置Jenkins服务器。

它可以将每个 maven 模块构建为单独的项目,然后自动重新构建具有快照依赖关系的任何其他项目。

更新

Jenkins 的 GIT 插件具有管理开发功能分支自动合并到“主”或“集成”分支的功能。请参阅文档:

https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures

另一种选择是使用像Gerrit这样的代码审查工具来控制功能开发。同样是 Gerrit 控制集成到共享代码流中的更改,并且 Gerrit 可以与 Jenkins 集成以确保所有提交的更改集都通过代码测试。

最后使用M2 Release 插件剪切发布,它是标准发布插件的包装器。(意味着您将始终在 Jenkins 中拥有两种类型的构建。由代码提交触发的自动构建和通过 UI 显式触发的发布构建)。

于 2013-07-16T20:17:10.003 回答
0

看看我在寻找关于 Gitflow 的其他内容时发现了什么: https ://github.com/nvie/gitflow

它不适用于 Maven,所以它不符合我的需求,但也许它可以帮助你。

于 2013-08-05T19:48:48.683 回答