当前位置: 首页 > 知识库问答 >
问题:

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

充鑫鹏
2023-03-14

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

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

我认为应该考虑依赖继承、项目存储库。

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

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

共有2个答案

乜昆
2023-03-14

我不建议您拥有具有不同技术的多个微服务的单个项目。

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

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

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

甄德寿
2023-03-14

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

然而,您可以为您的微服务定义一个父pom,它定义了公共配置和依赖关系。

 类似资料:
  • 我有一个包含多个子项目的根项目。最初,我们将这些项目作为独立的Maven项目保留,但我意识到Gradle更适合我使用。但是对于其中一个子项目,我们宁可不将其转换为Gradle项目,而将其保留为Maven项目。 root/build.gradle root/common.gradle root/api/pom.xml

  • 我想将一个maven项目集成到我的gradle构建过程中。虽然我成功地将maven项目(这是一个war overlay项目)转换为gradle项目,但这样做有几个缺点。首先,maven tomcat插件可以轻松创建带有嵌入式tomcat实例的可运行jar。我找不到一个gradle插件来做这个工作。为了解决这个问题,我看到了四种不同的方法,我想知道哪一种是最好的,或者是否有其他的可能性。 null

  • 问题内容: 我已经在Eclipse IDE中创建了一个Aspectj项目,但是我需要使用Maven来构建它。 我有maven-aspectj插件,但不知道如何使用它。 问题答案: 以下是我执行此步骤的步骤。这给了我编译时的编织。如果您需要其他策略,显然您需要其他方法(例如用于运行时AOP代理的Spring AOP )。 添加一个属性以标准化您使用的AspectJ版本: 添加运行时依赖项: 添加As

  • 我尝试设置一个JavaEE环境,用gradle构建。最后,我希望有一个EAR文件,其中包含一个EJB-Jar和某种可以部署到Glassfish的应用程序客户端(可能)。设置将是非常基本的。 目前我面临两个问题: 1)运行“耳朵”任务来组装EAR存档在tmp/耳朵中创建了一个错误的application.xml文件,如下所示: eclipse报告的错误消息是: cvc复合型。2.4.答:发现以元素“

  • 在某个地方,我发现当我阅读时,使用两个不同的Spring Boot项目开发所有的微服务。我对春和春云是新的。是否可以通过使用不同的模块在单个项目中创建所有的服务?

  • 我尝试使用mojo插件在Maven中配置sencha cmd。Maven配置如下所示: 我设置了环境变量(在我的示例中,我使用的是Windows操作系统)。当我尝试执行命令时,会出现错误: 未能在project Vehicle-Store上执行goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec(sencha-compile):命令执行失败。无法运