我正在使用微服务架构创建一个应用程序。我想知道我们是否可以在所有微服务中管理相同的 Spring Boot 版本。我只是不想在创建新微服务时在 pom.xml 中提及 Spring Boot 版本。如果我们可以在一个位置管理 Spring Boot 版本,那么它将确保所有微服务都使用相同的 Spring Boot 版本,并且很容易为所有微服务升级它。
如果可以,如何管理?
这是一个好习惯吗?
梵蒂冈之花
浏览 166回答 5
5回答
慕少森
如果您真的想这样做,您可以使用Maven构建您的单独应用程序(微服务),使用父 POM 和 Maven 的依赖管理功能(依赖管理与 Depdencies 不同)来控制使用哪个版本的 Spring Boot。但是,您不应该严格要求所有微服务都使用相同版本的 Spring Boot。如果你这样做了,并且其中一个微服务必须使用更新版本的 Spring Boot(例如,因为它有一个关键的新特性),那么你就是在强制所有微服务同时更新。微服务的主要优势之一是每个微服务都可以单独构建、更新和部署升级,因此您将剥夺您的系统的这种优势。但是,如果做得好,这可以为您带来两全其美的效果。旧的微服务可以继续使用旧版本的父 POM。新的和更新的微服务可以使用新版本的父 POM。很容易看出微服务是否使用(非常)旧版本的父 POM,因此应该更新。父 POM 的当前版本可以指示您认为使用哪些版本的依赖项是“最佳实践”。但是,不要试图使用多模块 Maven 结构,因为那样会强制微服务使用相同的 Spring Boot 版本,这会在每个微服务的构建中引入过多的耦合。