如何在所有微服务中维护相同的 Spring Boot 版本?

Sar*_*esh 4 java spring dependency-management spring-boot microservices

我正在使用微服务架构创建一个应用程序。我想知道我们是否可以在所有微服务中管理相同的 Spring Boot 版本。我只是不想在创建新的微服务时在 pom.xml 中提及 Spring Boot 版本。如果我们可以在一个位置管理 Spring Boot 版本,那么它将确保所有微服务都使用相同的 Spring Boot 版本,并且可以轻松地为所有微服务升级它。

如果可以的话如何管理?

这是一个好的做法吗?

Rae*_*ald 6

如果你真的想这样做,你可以使用Maven构建单独的应用程序(微服务),使用父 POM 和 Maven 的依赖管理功能(依赖管理与依赖关系不同)来控制使用哪个版本的 Spring Boot。

但是,您应该严格要求所有微服务都使用相同版本的 Spring Boot。如果您这样做,并且其中一个微服务必须使用较新版本的 Spring Boot(例如,因为它具有一项重要的新功能),那么您将强制同时更新所有微服务。微服务的主要好处之一是每个微服务都可以单独构建、更新和部署升级,因此您的系统将无法享受到这一好处。

然而,如果做得好,这可以给你带来两全其美的效果。

  • 旧的微服务可以继续使用旧版本的父 POM。
  • 新的和更新的微服务可以使用父 POM 的新版本。
  • 很容易看出微服务是否使用父 POM 的(非常)旧版本,因此应该更新。
  • 父 POM 的当前版本可以指示您认为要使用的“最佳实践”的依赖项版本。

但是,不要尝试使用多模块 Maven 结构,因为那样你将强制微服务使用相同的 Spring Boot 版本,这会在每个微服务的构建中引入过多的耦合。