使用 gradle 或 maven 的微服务的项目结构应该如何?

How should be project structure using microservices with gradle or maven?

我想确定在使用微服务架构时项目结构的最佳实践是什么。

所有微服务都可以创建为新的 maven/gradle 项目或 subproject/module。

我觉得应该考虑依赖继承,项目仓库。

由于微服务的性质,任何服务都可以采用不同的技术,但大多数服务仍然可以具有相同的依赖项(例如 spring-boot))。

另一个问题是团队应该获取所有服务还是只获取将要处理的服务?所以存储库结构也会受到结构的影响。

我不建议您在一个项目中包含多个不同技术的微服务。

如果您使用 Java 作为一种编程语言,您可以拥有一个主项目并将其用作您的微服务项目中的父项目。此外,您可以将公共库作为微服务项目的依赖项。

如果你想用不同的技术做一个微服务,我建议你为每个微服务都有一个存储库。

选择此选项,您可以在更改每个微服务的代码时对其进行部署和版本控制,而不是在对另一个微服务进行更改时。

拥有多模块项目的主要原因是管理不同模块之间的依赖关系(在 Maven 意义上)(并以正确的顺序将它们构建在一起)。您的微服务可以相互调用,但在 Maven 意义上并不相互依赖。所以我不会为他们使用多模块项目。

不过,您可以为定义通用配置和依赖项的微服务定义父 pom。