我们目前有几个使用Spring Boot的小型代码库,其中有一些重复的代码。我们希望将它们合并到同一个代码库中,并寻找最佳方法来实现。我们考虑要么有一个包含所有代码的src/main文件夹,然后我们有不同的main方法可以运行(基于这个教程),要么在同一个代码库中拥有独立的模块,然后有一个父模块包含共享逻辑。
如果您有类似的经验,请分享给我们。
如果您有类似的经验,请分享给我们。
我已经有一个类似的开发环境设置了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>