【发布时间】:2016-07-23 07:51:20
【问题描述】:
我使用 Nexus 作为我的项目的存储库,我使用 Jenkins 作为我的 CI 协调器。
在我的 Jenkins 作业结束时,我调用 Nexus REST API 来重建 Maven 元数据,以便可以更新有关每个组件的最新版本的信息。当执行 REST 调用时,它立即返回,但更新任务实际上在 Nexus 中排队并最终被执行。
由于我有多个并行运行的作业,当其中一个组件尝试从 Nexus 提取依赖项而 Maven 元数据尚未完成刷新时,有时构建会遇到一种竞争条件 -因此,即使新版本已经存在并且元数据即将刷新,也会从 Nexus 中提取旧版本。
防止这种情况的一个好方法是使此调用同步,即阻止构建,直到实际重建 Maven 元数据。
当然,我可以通过在循环中轮询 Nexus 以获取组件的最新版本,直到它被更新来以编程方式执行此操作。但是,我想知道是否有办法使用 Nexus API 来做到这一点。想法?
【问题讨论】:
-
我刚刚在stackoverflow.com/q/65847936/585820得到了一个相关问题的答案,也许这对你也有帮助。