gpt4 book ai didi

java - Maven 使用另一个存储库中的 lib 构建微服务

转载 作者:行者123 更新时间:2023-12-02 09:49:08 26 4
gpt4 key购买 nike

我们在单独的 git 存储库中拥有 Spring 微服务。这些微服务使用共享库,它也是独立的存储库。该库在 pom.xml 的依赖项中用作 Artifact 。你能告诉我如何配置 jenkins 首先使用该库构建任何微服务吗?这个库应该作为构建任何微服务的先决条件来构建,但我不知道如何管理它。

我们应该在maven还是jenkins中处理它?谢谢您的建议。

最佳答案

我假设您正在为 CI/CD 使用 jenkins 管道。因此,无论如何,您都必须创建两个 jenkins 管道,第一个用于构建您的库,第二个用于构建您的微服务。

我会这样做:

1) 将代码提交到库

2)触发库构建并生成新的 Artifact 版本。

3) 生成的 lib Artifact 的复制版本

4)更改服务中的pom文件并提交。

5) 正在使用新的库版本构建微服务。

这种方法不是完全自动化的,但非常简单。由于您很少更改库,因此手动设置库版本是完全可以的。

我尝试自动化的方式以及我们需要解决的问题:

  • 在服务构建之前运行 lib 构建。

    我们将为 lib git repo 的每次提交触发 lib 构建。因此您不必再次构建它。

  • 获取库触发的构建版本并使用新版本更新微服务 pom 文件

    在 lib 构建期间,您可以将 lib 版本号附加到 jenkins 构建信息(例如构建显示的名称)。然后在微服务构建期间提取此信息。获得编号后,您可以更新 pom 文件并开始构建。

我看到的唯一一个优点是您不需要手动设置 lib 版本。它将从 lib jobs 结果中提取。

缺点:

  • 构建复杂
  • 无法控制构建版本更新(它将始终拉取最新版本,除非您将创建某种机制来决定是否要保留现有的 lib 版本 -> 更复杂的构建)

    <
  • 本地构建的问题,因为 GIT 中的版本和 jar 的实际版本不同(因为您在 jenkins 工作期间动态更新它,除非您直接从 jenkins 提交版本更新更改 -> 复杂的构建)。

关于java - Maven 使用另一个存储库中的 lib 构建微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com