如何在一个存储库中安装多个Spring启动应用程序?

时间:2016-09-09 03:43:45

标签: spring-boot

我们目前有几个小代码库,它们都使用spring boot并且有一些重复的代码。我们希望将这些内容放到同一个存储库中,并且只是寻找最佳方法来实现这一目标。我们一直在寻找有一个包含所有代码的src / main,然后我们有不同的主管可以调用运行(based on this tutorial)或在同一个存储库中有单独的模块然后有一个父模块它有共享逻辑。

任何类似行为的经验都将受到赞赏

2 个答案:

答案 0 :(得分:4)

我有一个类似的开发环境设置已经8个月了,我们的团队不是一个非常大的(只有7人),我们做得很好。

首先,我想明确表示它与Spring Boot没什么关系,它完全与你的构建和依赖管理技术有关,在我的案例Maven中。

共享依赖关系和属性: 您可以将父项目用作共享相同公共依赖项和属性的子项目的容器。

您的容器maven项目打包必须是<packaging>pom</packaging>。但请注意,此文件中出现的任何依赖项都将在子项目中继承,因此请仅保留必要的公共依赖项,否则您需要将其包含在子项目maven文件,包含一长串被排除的工件。

分享代码模块: 您可以在父项目(容器)下将maven项目中的公共代码分开,并将其作为提供的依赖项添加到您想要的任何项目中。

请考虑此结构

/*parent project pom file : may have common spring starter dependencies and any other dependencies will be used all over the modules*/

<modules>
        <module>backend</module> <!-- backend will contain deployable modules which may reuse nodules of reusable code in commons module -->
        <module>frontend</module> <!-- backend will contain deployable modules which may reuse nodules of reusable code in commons module -->
        <module>commons</module> <!-- reusable code modules -->
</modules>

//backend module pom file : may have common spring starter dependencies and any other dependencies will be used all over backend modules

    <modules>
        <module>account-service</module> <!-- deployable account service module -->
        <module>ledger-service</module> <!-- deployable ledger service module -->
        <module>backend-commons</module> <!-- reusable code modules to be used in backend services modules -->
    </modules>

答案 1 :(得分:0)

我不鼓励将单独的项目合并到一个存储库中。它会在您的存储库历史记录中造成混乱,并且您在分支处理方面会遇到很多问题。

为每个春季启动项目继续使用单独的存储库+共同逻辑是单独的项目(以及存储库)。该项目将被单独版本化/构建/部署到您的工件库中。您的Spring Boot服务将用作JAR依赖。