具有 Spring- 启动和发布管理的微服务

Microservices with Spring-Boot and Release Management

正在寻找有关如何对使用 Spring Boot 构建的微服务进行发布管理的建议。

我工作过的大多数项目都使用发布插件 (maven) 来创建标签以及发布 maven 项目(jar、war、rpm)。通常,这依赖于发布过程中所有子项目(jars,wars)的 maven parent/child 关系(整体源代码,全部存在于单个 git 存储库中)。我想知道人们如何维护不同的引导项目(微服务)并发布。

在我看来,以下是可能的策略:

  1. 每个 git 存储库一个 Spring 引导项目(微服务 Maven 项目),以便独立管理发布。
  2. 一个多模块 Maven 项目,每个模块都是一个微服务。所有子模块(微服务)都必须一起发布。父 pom 必须使用 Boot 的父 pom。
  3. 依靠 maven-release-plugin 的能力来基于发布仅发布某些子模块。这将使每个 Maven 子模块具有不同的版本(可能)。

您的团队发现什么有用?我喜欢 Boot 的编程模型,但我希望我可以使用与 Boot 保持简单的模型一致的发布策略。

只是为了解决这个问题,我使用选项 1。虽然拥有多个存储库可能看起来很多,但实施微服务架构排除了良好的 devops 流程来简化此发布管理流程。