我有一个集群应用程序体系结构,其中我的3个主要服务使用了依赖 Artifact (让我们称其为Commons),该依赖 Artifact 包含模式文件和其他3个服务使用的其他工具。

目前,我已经通过Gitlab CI通过用于图像管理的 Artifact 通过Gitlab CI部署了所有3个spring boot应用程序。

现在,每次更改公用服务时,我都必须更改pom.xml中公用的版本(这样才不会与以前的 Artifact 镜像冲突),还必须更改其他3个服务的pom版本依赖于此新版本,并推送所有4个(首先推送公用,以便可以在 Artifact 中使用新的构建镜像,然后再使用其他3个)服务。

是否有更好的方法来管理此问题。如果我的3个服务能够获取最新的通用版本并将其添加到我的pom版本中,我会更愿意

最佳答案

Reliza Hub当前受支持(免责声明:我正在开发该项目)。

获取最新版本的工作流程已记录在here中(请参见工作流程2.获取项目或产品的最新版本)。

想法如下:

  • ,您可以为共享库定义项目,并从GitLab CI进行配置,以使用Reliza Client在每个构建中将构建元数据自动流式传输到Reliza Hub。
  • 也可以通过Reliza Hub维护自动版本控制(这意味着Hub将根据您选择的版本控制架构在每个构建上为您增加版本)-为此,您需要使用Reliza Client的getversion命令。
  • 然后,您可以在构建时使用此自动版本增量来更新pom.xml中的版本。因此,此过程将完全自动化。
  • 完成此操作后,在3个相关服务的每一个的CI管道中,使用Reliza Client的getlatestrelease命令对共享库包括对Reliza Hub的调用。此调用将返回您最新版本的共享库的所有元数据,包括其版本。
  • 然后,您可以将此版本插入到相关服务的pom文件中。

  • 希望这可以帮助。

    关于spring-boot - GitLab CI:Spring Boot依赖于另一个项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60660802/

    10-10 04:39