【问题标题】:CI deploy strategyCI 部署策略
【发布时间】:2023-12-10 09:11:01
【问题描述】:

假设Team A 正在处理library A version 1.0.1 Team B 正在处理 library B version 2.0.3 我们希望将这两个工件一起交付。

library A depends on Library B

在这种情况下,我们是否应该将 Jenkins 配置为在 maven 远程仓库上部署工件,以便开发人员始终使用最新的 SNAPSHOT 版本? 这里的最佳做法是什么?

【问题讨论】:

    标签: java maven jenkins continuous-integration


    【解决方案1】:

    两种可能的方法:

      1234563当您在 1.0.1 版本中发布库 A 以及在 2.0.2 中发布库 B 时,不会有任何意外。
    • 如果库 B 的最新发布版本不够,即 A 需要 B 尚未发布的新方法,则需要使用库 B 的 SNAPSHOT 构建。所以团队B 必须定期构建一个 SNAPSHOT 版本,A 团队可以使用它。在发布之前,B 需要构建一个发布版本,之后,A 可以针对 B 的这个发布版本进行构建。

    【讨论】:

      【解决方案2】:

      只需使用 mvn deploy 将您的 SNAPSHOT 版本部署到通用 Maven 存储库,并在 lib A 的 pom.xml 中将 lib B 2.0.4-SNAPSHOT 声明为依赖项。

      确保使用 mvn <goal> -U 构建库 A 以触发 Maven 以更新 SNAPSHOT 依赖项。

      【讨论】: