处理共享库版本控制、部署和使用的最佳方式

Best way to handle shared libraries versioning, deployment and usage

我想分享一个我需要解决的问题,但我想不出最好的方法。

目前,对于我们的微服务项目 (Spring),我们开发了一些内部共享库。这些库使用 Bitbucket 进行版本控制,我们有两种方法来处理部署和使用:

  1. Git 子模块:对于这种情况,我们将共享库作为 git 子模块嵌入到微服务项目中。这种方法的主要问题是,开发人员混合引用并提交指向子模块错误分支的微服务的频率比我预期的要高。

  2. 常规依赖:我们把共享库的开发作为一个单独的项目来做,然后用pipeline编译,部署到artifactory。然后我们像往常一样添加 maven 依赖项。这种方法的主要 CON 是库版本控制(maven 版本控制)更难管理,也更难追溯用于任何微服务部署的引用。

那么,我很想听听你对这个案例的接触和建议,你在你的项目中做了什么?

此致!

您可以使用选项 2,同时您可以更喜欢使用多模块 maven 项目

https://spring.io/guides/gs/multi-module/

你可以将它保存在一个框架存储库中假设它将是你的 parent 存储库并且你可以将它包含在你的 child 项目中,这样 parent 会继续维护版本,例如:spring-boot-starter-parent 的工作原理

https://www.springboottutorial.com/spring-boot-starter-parent

What does spring-boot-starter-parent exactly do in pom file?